首页 > 其他 > 详细

leetcode 反转链表

时间:2020-06-06 19:02:46      阅读:37      评论:0      收藏:0      [点我收藏+]

反转一个单链表。

示例:

输入: 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;
    }

 



leetcode 反转链表

原文:https://www.cnblogs.com/superPerfect/p/13055647.html

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