iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

資料結構大便當系列 第 11

[Day 11] linked-list 指標

  • 分享至 

  • xImage
  •  

Linked list 是一種常見的資料結構,用 node 來記錄、表示、儲存資料,並利用每個 node 中的 pointer 指向下一個 node,藉此將多個node串連起來,形成Linked list,並以NULL來代表Linked list的終點。

linked list 中,有一題時常出現:找出中間數值。

這題可以註冊兩個指標,並將各速度設為 2:1
隨著元素的進行,當快指標走到結束時,慢指標恰好為中間值

class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        struct ListNode *slow_ptr = head;  
        struct ListNode *fast_ptr = head;  
    
            while (head != NULL && (fast_ptr != NULL && fast_ptr->next != NULL))  
            {  
                fast_ptr = fast_ptr->next->next;  
                slow_ptr = slow_ptr->next;  
            }  
            return slow_ptr; 
        }
};

上一篇
[Day 10] Stack + Queue 最無聊的題目 II
下一篇
[Day 12] linked-list + stack
系列文
資料結構大便當30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言