LeetCode 206. Reverse Linked List
来源:互联网 发布:国研网由哪些数据库 编辑:程序博客网 时间:2024/06/06 02:40
Reverse a singly linked list.
其实我们知道Stack有个特点,你将一组元素入Stack, 然后再出Stack,它就会反序。这儿我们就利用这个思想,我们并不用建立一个堆,只要利用递归函数访问具有Stack的特点这个性质就足够了。 我们每一次递归,就先求得后面链表Reverse之后的队尾元素,然后让这个元素指向当前元素,并把当前元素当作队尾元素返回。假如传入的参数的next变量为空,我们就直接记录该元素为新的对头并返回该元素。最后记得将新的队尾元素的next设置为空。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { ListNode newHead = null; private ListNode reverseHelper(ListNode head){ if(head.next == null){ newHead = head; return head; } ListNode temp = reverseHelper(head.next); temp.next = head; return head; } public ListNode reverseList(ListNode head) { if(head == null){ return head; } ListNode lastNode= reverseHelper(head); lastNode.next =null; return newHead; }}事件和空间都算是O(1)。
另外我们还可以用迭代,多用几个指针跟随就行了。
0 0
- 【LeetCode】206.reverse linked list
- [leetcode] 206.Reverse Linked List
- [leetcode] 206. Reverse Linked List
- 206. Reverse Linked List LeetCode
- leetCode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- [LeetCode]206. Reverse Linked List
- 【LeetCode】206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- leetcode 206. Reverse Linked List
- 【LeetCode】206. Reverse Linked List
- leetcode 206. Reverse Linked List
- LeetCode *** 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- 【leetcode】206. Reverse Linked List
- [LeetCode]206. Reverse Linked List
- #leetcode#206. Reverse Linked List
- 腾讯2017暑期实习生编程题
- Android studio Gradle download 文件 路径
- 类似列表滑动块的实现
- Android微信支付完整步骤
- 273. Integer to English Words
- LeetCode 206. Reverse Linked List
- InterlliJ 定制Getter and Setter分享
- nload安装
- 树莓派简介
- ActiveMQ 开发 点对点消息实现 1
- 用opencv + vs2013来打开计算机摄像头
- Java 中的流
- Linux内核驱动之spi子系统(一)spi协议
- python爬虫获取全国天气信息