【Leetcode】Reversed Linked List
2015-06-29 00:09
246 查看
【题目】
Reverse a singly linked list.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
【思路】
我自己想的办法就是可以用一个stack,先把每一个元素都装进去,然后在倒着吐出来。
放在新的list里面。
需要两个指针,一个指向新的list的root,另一个走一遍新list.
【代码】自己提交的代码,一遍过
[Other’s code]
Iterative ! !
Reverse a singly linked list.
Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
【思路】
我自己想的办法就是可以用一个stack,先把每一个元素都装进去,然后在倒着吐出来。
放在新的list里面。
需要两个指针,一个指向新的list的root,另一个走一遍新list.
【代码】自己提交的代码,一遍过
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode reverseList(ListNode head) { if(head == null) return null; Stack<Integer> stack = new Stack<Integer>(); while(head!=null){ stack.push(head.val); head = head.next; } System.out.println(stack); ListNode newRoot = new ListNode(0); ListNode p = new ListNode(stack.pop()); newRoot.next = p; while(!stack.isEmpty()){ p.next = new ListNode(stack.pop()); p = p.next; } return newRoot.next; } }
[Other’s code]
Iterative ! !
public class Solution { public ListNode reverseList(ListNode head) { if(head == null) return head; ListNode next = head.next; head.next = null; while(next != null){ ListNode temp = next.next; next.next = head; head = next; next = temp; } return head; } } Recursive!!!! public class Solution { public ListNode reverseList(ListNode head) { if(head == null) return head; ListNode next = head.next; head.next = null; return recursive(head,next); } private ListNode recursive(ListNode head, ListNode next){ if(next == null) return head; ListNode temp = next.next; next.next = head; return recursive(next,temp); } }
相关文章推荐
- UVA 550 Multiplying by Rotation (简单递推)
- Java基础:泛型及其擦除性、不可协变性
- hdu2005 关于输入的技巧及初始化问题
- 内存和FLASH的区别
- JavaScript写一个小乌龟推箱子游戏
- hadoop 流streaming跑python程序
- effective c++ 记录之对象切割问题
- 一个用 C 语言写的迷你版 2048 游戏,只有 500个字符
- SQL注入的攻击与防御(简单篇)
- C++标准异常类
- php页面静态化—触发系统生成纯静态化页面的三种方式
- The-Swift-2.0-Programming-Language-playground
- 收藏:Javascript 脚本的调试经验
- Java 容器
- 【吾日三省吾身】2015.6.28-涅槃行动第四十一天
- 如何从 Linux 上连接到远程桌面
- MAC 密钥散列算法
- Shell脚本实现的基于SVN的代码提交量统计工具
- ubuntu苹果主题
- 检查网口流量与前10名流量大IP