积少成多

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

反转链表

注意是借用  假的头节点,这样算法判断开始和结束,就好很多了.

借用头插法.

[]dummy/head

[]  []   []   []

head  curr

====

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode dummy(-1);//假的头节点
        ListNode *curr = head;

        head = &dummy;
        while(curr)
        {
            ListNode *tmp = curr->next;
            curr->next = head->next;
            head->next = curr;
            curr = tmp;
        }

        return dummy.next;
    }
};

 

posted on 2016-06-22 13:52  x7b5g  阅读(139)  评论(0编辑  收藏  举报