leetcode 反转链表

2020-06-06 16:00:57来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

leetcode 反转链表

反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL


    // 将链表分为new和old两个链表
    // curOld是old链表的头指针
    // curNew是new链表的头指针
    // 本质上讲old链表的结点一个一个取出后,将取出的节点再重组成一个新链表
    ListNode* reverseList(ListNode* head) {
        ListNode* curOld = head;
        ListNode* curNew = NULL;
        ListNode* tmp = NULL;

        while(1) {
            if(curOld == NULL) {
                break;
            }            
            //old指针即将跳转的下一个位置存起来
            tmp = curOld->next;  

            //old指针放入new链表的头位置
            curOld->next = curNew; 
            curNew = curOld; 

            //old指针移位到下一个
            curOld = tmp;

        }

        return curNew;
    }

 




原文链接:https://www.cnblogs.com/superPerfect/p/13055647.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何0基础学习C/C++?

下一篇:Visual Studio 2019提示不能将const char*类型的值分配到const*