内容简介:Reverse a singly linked list.Example:Follow up:
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?
反转单链表,看到我好几年前通过的代码居然是用List遍历保存之后再倒序遍历反转,然而还RE了好几次。。。往事突然浮现在脑海,没忍住又重写了一下。
耗时0ms
class Solution {
public ListNode reverseList(ListNode head) {
ListNode cur = head, prev = null, temp = null;
while (cur != null) {
temp = cur.next;
cur.next = prev;
prev = cur;
cur = temp;
}
return prev;
}
}
以前的代码是这样的(耗时464ms):
public class Solution {
public ListNode reverseList(ListNode head) {
if(head == null || head.next == null)
return head;
ArrayList<Integer> list = new ArrayList<Integer>();
ListNode p = head;
while(p!=null) {
list.add(p.val);
p = p.next;
}
ListNode q = head;
for(int i=list.size()-1; i>=0; i--) {
q.val = list.get(i);
q = q.next;
}
return head;
}
}
以上所述就是小编给大家介绍的《LeetCode - 206. Reverse Linked List》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
单元测试之道Java版
David Thomas、Andrew Hunt / 陈伟柱、陶文 / 电子工业 / 2005-1 / 25.00元
程序员修炼三部曲丛书包含了四本书,介绍了每个注重实效的程序员和成功团队所必备的一些工具。 注重实效的程序员都会利用反馈来指导开发,并驱动个人的开发流程。编码的时候,最有用的反馈来自于“单元测试”。 为了测试一座桥梁,不会只在晴朗的天气,开一辆汽车从桥中间穿过,就认为已经完成了对桥梁的测试。然而许多程序员却正在使用这种测试方法——把这种一次顺利通过称为“测试”。事实上,注重实效的程序员应......一起来看看 《单元测试之道Java版》 这本书的介绍吧!