码迷,mamicode.com
首页 > 其他好文 > 详细

206. Reverse Linked List【easy】

时间:2017-10-14 18:25:19      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:username   nod   iter   null   imp   its   dea   asi   sim   

206. Reverse Linked List【easy】

Reverse a singly linked list.

Hint:

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

 

解法一:

 1 class Solution {
 2 public:
 3     ListNode* reverseList(ListNode* head) {
 4         ListNode * pre = NULL;
 5         
 6         while (head != NULL) {
 7             ListNode * next = head->next;
 8             head->next = pre;
 9             pre = head;
10             head = next;
11         }
12         
13         return pre;
14     }
15 };

 

解法二:

 1 class Solution {
 2 public:   
 3     ListNode* reverseList(ListNode* head) {
 4         if (!head || !(head -> next)) return head;
 5         ListNode* node = reverseList(head -> next);
 6         head -> next -> next = head;
 7         head -> next = NULL;
 8         return node; 
 9     }
10 }; 

参考了@jianchao.li.fighter 的代码

The basic idea of this recursive solution is to reverse all the following nodes after head. Then we need to set head to be the final node in the reversed list. We simply set its next node in the original list (head -> next) to point to it and sets its next to be NULL.

 

解法三:

 1 public ListNode reverseList(ListNode head) {
 2     /* recursive solution */
 3     return reverseListInt(head, null);
 4 }
 5 
 6 private ListNode reverseListInt(ListNode head, ListNode newHead) {
 7     if (head == null)
 8         return newHead;
 9     ListNode next = head.next;
10     head.next = newHead;
11     return reverseListInt(next, head);
12 }

参考了@braydenCN 的代码

 

206. Reverse Linked List【easy】

标签:username   nod   iter   null   imp   its   dea   asi   sim   

原文地址:http://www.cnblogs.com/abc-begin/p/7667897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!