【Leetcode】206 Reverse Linked List
来源:互联网 发布:矩阵的概念ppt 编辑:程序博客网 时间:2024/04/27 13:53
我的答案以及大神答案
我的答案:
/** * 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) { Stack<ListNode> sk = new Stack<ListNode> (); if(head != null){ sk.push(head); while(head.next != null) { head = head.next; sk.push(head); } head = sk.pop(); while(!sk.isEmpty()) { head.next = sk.pop(); } } else { return null; } return head; }}
空间复杂度O(n)
提交,然后。。。应该是代码写的有问题。需要再调试。
Memory Limit Exceeded
大神答案:http://blog.csdn.net/xudli/article/details/45715463
1.recursion 递归
/** * 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; if(head.next==null) return head; ListNode p = head.next; ListNode n = reverseList(p); head.next = null; p.next = head; return n; } }
2.iteration
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ // 1 <-2 3 public class Solution { public ListNode reverseList(ListNode head) { if(head==null || head.next==null) return head; ListNode pre = head; ListNode p = head.next; pre.next = null; ListNode nxt; while(p!=null) { nxt = p.next; p.next = pre; pre = p; p = nxt; } return pre; } }分析:用了三个指针,每次更改中间指针的指向,向后移动一位,继续刚才的操作。
0 0
- LeetCode 206 - Reverse Linked List
- leetcode 206 Reverse Linked List
- LeetCode 206:Reverse Linked List
- leetcode 206: Reverse Linked List
- Reverse Linked List - LeetCode 206
- 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
- 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
- 防止SQL注入和XSS攻击Filter
- C++实现字符串替换的两种方法
- Android之用Intent.FLAG_ACTIVITY_CLEAR_TOP解决界面重复拉起问题
- 分布式系统学习
- 安卓网络编程-通过GET方式获取网络图片
- 【Leetcode】206 Reverse Linked List
- 【VC小项目】-13.1动物可以这样叫
- 矩形覆盖
- centos7下安装tomcat8笔记(不适用于生产环境)
- c语言学习笔记41
- java语言程序设计基础篇第一章编程练习题
- Java-时间复杂度为O(nlogn)的排序算法(快速排序, 归并排序, 堆排序, 希尔排序)
- leave-one-out之个人理解
- 千万不要看—思路火花