【Leet Code】206. Reverse Linked List

  • 2019 年 11 月 7 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/shiliang97/article/details/102089354

Reverse a singly linked list.

Example:

Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL Follow up:

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-linked-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

比较基础的链表题。。。

三地址存储 , 前一个,当前,后一个。

while(cur != NULL){ temp = cur->next; cur -> next = pre; pre = cur; cur =temp; }

主要就这一个while()。

/**   * Definition for singly-linked list.   * struct ListNode {   *     int val;   *     ListNode *next;   *     ListNode(int x) : val(x), next(NULL) {}   * };   */  class Solution {  public:      ListNode* reverseList(ListNode* head) {         if(head == NULL) return NULL;          ListNode *pre = NULL, *cur = head , *temp =NULL;          while(cur != NULL){              temp = cur->next;              cur -> next = pre;              pre = cur;              cur =temp;          }          return pre;      }  };
class Solution {  public:      ListNode* reverseList(ListNode* head) {          if(head==NULL)              return NULL;          ListNode *prePtr = NULL, *curPtr = head, *nextPtr=head->next;          while(nextPtr != NULL){              curPtr->next = prePtr;              prePtr = curPtr;                  curPtr = nextPtr;              nextPtr = nextPtr->next;          }            curPtr->next=prePtr;            return curPtr;      }  };  

作者:varyshare 链接:https://leetcode-cn.com/problems/reverse-linked-list/solution/gao-xiao-jie-fa-da-bai-9999de-yong-hu-fan-zhuan-li/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。