While loop 做法:

 

 1 class Solution {
 2     public ListNode reverseList(ListNode head) {
 3         ListNode prev = null, cur = head;
 4         while (cur != null) {
 5             ListNode node = cur.next;
 6             cur.next = prev;
 7             prev = cur;
 8             cur = node;
 9         }
10         return prev;
11     }
12 }

 

 

Recursion 做法:

 1 class Solution {
 2     public ListNode reverseList(ListNode head) {
 3         if (head == null || head.next == null) {
 4             return head;
 5         }
 6         ListNode newHead = reverseList(head.next);
 7         ListNode tail = head.next;
 8         tail.next = head;
 9         head.next = null;
10         return newHead;
11     }
12 }

 

posted on 2018-03-01 14:17  mayinmiao  阅读(82)  评论(0编辑  收藏  举报