首页 > 其他 > 详细

<LeetCode OJ> 206. Reverse Linked List

时间:2016-01-17 16:14:16      阅读:208      评论:0      收藏:0      [点我收藏+]

206. Reverse Linked List

My Submissions
Total Accepted: 74536 Total Submissions: 200484 Difficulty: Easy

Reverse a singly linked list.

click to show more hints.

Hint:

A linked list can be reversed either iteratively or recursively. Could you implement both?

Subscribe to see which companies asked this question

Hide Tags
 Linked List
Show Similar Problems


分析:

利用三个指针,pre,cur,next,遍历链表,遍历的过程改变他们的指向
pre的作用,cur指针所要反指回来的节点
cur的作用,操作当前节点进行逆置
next的作用,始终先跑到下一个将要逆置的节点位置

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head==NULL)
            return head;
        //初始化
        ListNode* pPreNode=head;
        ListNode* pCurNode=head->next;
        pPreNode->next=NULL;
        ListNode* pNextNode=NULL;
        while(pCurNode!=NULL)
        {
            pNextNode = pCurNode->next; //准备下一个位置
            pCurNode->next = pPreNode;//逆置
            //pPreNode 和 pCurNode 后移一位 
            pPreNode = pCurNode; //cur变成前一个
            pCurNode = pNextNode;//next变为当前节点
        }
        head = pPreNode; //退出循环是只有pPreNode指针指向实体节点,另外两个已经为NULL
        return head;
    }
};


注:本博文为EbowTang原创,后续可能继续更新本文。如果转载,请务必复制本条信息!

原文地址:http://blog.csdn.net/ebowtang/article/details/50531851

原作者博客:http://blog.csdn.net/ebowtang

<LeetCode OJ> 206. Reverse Linked List

原文:http://blog.csdn.net/ebowtang/article/details/50531851

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!