首页 > 其他 > 详细

Reverse Linked List解题报告

时间:2016-04-16 07:14:45      阅读:145      评论:0      收藏:0      [点我收藏+]

Reverse Linked List

题目大意:把当前的linked list顺序颠倒

思路: 1. a,b交换值 a=temp

          temp = b

          b = a

   2.用一个while循环,不断把当前拿到的值放在新的linked list的头上

   3.注意循环结束条件和指针的变化

代码:

 1 public ListNode reverse(ListNode head) {
 2         if (head == null) {
 3             return head;
 4         }
 5         ListNode current = new ListNode(0);
 6         ListNode temp = new ListNode(0);
 7         ListNode pre = new ListNode(0);
 8 
 9         pre = null;
10         current = head;
11         while (current != null) {
12             temp = current.next;
13             current.next = pre;
14             pre = current;
15             current = temp;
16         }
17         return pre;
18     }
19 }

注意点: 1. 原有的linked list最前面加一个null节点

    2. 循环条件为current != null

    3.返回值为pre pointer 而不是current pointer

 

Reverse Linked List解题报告

原文:http://www.cnblogs.com/jiangchen/p/5397555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!