LeetCode - 206. Reverse Linked List
来源:互联网 发布:淘宝卖家发快递多少钱 编辑:程序博客网 时间:2024/06/06 07:14
迭代法:采用三个指针,分别指向前一个结点,当前结点和下一个结点,将当前结点的next指针指向下一个结点,然后更新前一个节点(prev++)和当前结点(curr++),时间复杂度O(n),代码如下:
/** * 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) { // Corner case if(head == null){ return head; } ListNode prev = null; ListNode curr = head; while(curr != null){ ListNode next = curr.next; curr.next = prev; prev = curr; curr = next; } head = prev; return head; }}
递归:首先获取head.next结点,对这个结点调用reverseList,然后假设rest都已经reverse完毕的情况下调整当前结点的指针,时间复杂度O(n),代码如下:
public class Solution{ public ListNode reverseList(ListNode head){ if(head == null){ return head; } ListNode rest = head.next; reverseList(rest); head.next.next = head; head.next = null; head = rest; return head; }}
知识点:
1. 在Linked List和Array中,采用多个指针是一个很好的思路
2. 这道题目是一个关于Linked List的基本技能题目,多多记下
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
- ORACLE——用户、表空间、数据库理解一
- enhanced HOG features
- Swift关于NSURL(string:)方法抛出空值错误的问题及解决方案
- HTML <frameset> 标签
- 利用Splashtop Xdisplay让手机成为pc的扩展显示器
- LeetCode - 206. Reverse Linked List
- Java笔记
- mysql 5.7安装后没有data文件夹的问题
- wordpess多用户
- hdu3578(01背包)
- HTML网页制作:[12]使用框架结构之frameset
- 自写信息管理系统——C实现
- 时间戳与字符串之间的转换
- dev_get_by_index的使用及struct net*参数