博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

LeetCode【206】Reverse Linked List

Posted on 2015-05-08 10:09  NUST小文  阅读(146)  评论(0编辑  收藏  举报

Reverse a singly linked list.

比较简单,可就是如此简单,面试官让我写,我居然写错了。主要是想错了。直接上AC代码。

ListNode* reverseList(ListNode* head) {
        if(head == NULL)
            return NULL;
        
        ListNode *wait = head->next;
        ListNode *wait_next = NULL; 
        head->next= NULL;
        for(;wait!=NULL;)
        {
            wait_next = wait->next;
            wait->next = head;
            head = wait;
            wait = wait_next;
        }
        return head;
    }

 发现写的略复杂,改了下,简单了不少。把当前节点拿过来作为已经翻转结果的表头。

ListNode* reverseList(ListNode* head) {
        ListNode* res=NULL;
        while(head)
        {
            ListNode *tmp= head->next;
            head->next = res;
            res = head;
            head = tmp;
        }
        return res;
    }