1. 程式人生 > >#206 反轉鏈表

#206 反轉鏈表

記錄 一個 思路 col logs nbsp 代碼 listnode lis

思路

1. 使用三個指針,一個是新的鏈表頭newHead,一個是遍歷原鏈表的cur,newHead是cur的前一個節點

2. cur不斷向前,並把cur->next 指向newHead,逐個反轉

3. 第三個指針,tmp,用於記錄原來的遍歷方向,即原cur->next

代碼

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode *cur, *newHead;
        cur = head;
        newHead = NULL;
        
while (cur) { ListNode *tmp = cur->next; cur->next = newHead; newHead = cur; cur = tmp; } return newHead; } };

#206 反轉鏈表