#206 反转链表

Posted Kinsang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#206 反转链表相关的知识,希望对你有一定的参考价值。

思路

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 反转链表的主要内容,如果未能解决你的问题,请参考以下文章

java刷题--206反转链表

每天一道面试题LeetCode 206 -- 反转链表

206链表-反转链表

206链表-反转链表

206. 反转链表(递归)

剑指offerJZ15——反转链表。leetcode206.反转链表