博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 206. Reverse Linked List
阅读量:5127 次
发布时间:2019-06-13

本文共 1773 字,大约阅读时间需要 5 分钟。

Similar Questions 

   

 

思路:链表反转。

解法一:迭代。

添加头节点(推荐):不断将当前元素start插入dummy和dummy.next之间,实现反转。

1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { val = x; } 7  * } 8  */ 9 class Solution {10     public ListNode reverseList(ListNode head) {11         if(head == null) return head;12         ListNode dummy = new ListNode(0);13         dummy.next = head;14         ListNode pre = head, start = head.next;15         while(start != null) {16             pre.next = start.next;17             start.next = dummy.next;18             dummy.next = start;19             start = pre.next;20         }21         return dummy.next;22     }23 }

 

不添加头节点:

1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { val = x; } 7  * } 8  */ 9 class Solution {10     public ListNode reverseList(ListNode head) {11         ListNode p0, p1;12         p0 = null;13         p1 = head;14         while(p1 != null) {
//确保p1不为空15 ListNode p2 = p1.next;16 p1.next = p0;17 p0 = p1;18 p1 = p2;19 }20 return p0;21 }22 }

解法二:递归。

1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { val = x; } 7  * } 8  */ 9 class Solution {10     public ListNode reverseList(ListNode head) {11         if(head == null || head.next == null) return head;//这个判断很重要12         ListNode p1 = head.next;13         ListNode p0 = reverseList(p1);14         p1.next = head;15         head.next = null;16         return p0;17     }18 }

Next challenges:  

转载于:https://www.cnblogs.com/Deribs4/p/8406523.html

你可能感兴趣的文章
linux命令之ifconfig详细解释
查看>>
NAT地址转换
查看>>
Nhibernate 过长的字符串报错 dehydration property
查看>>
Deque - leetcode 【双端队列】
查看>>
Linux 普通用户拿到root权限及使用szrz命令上传下载文件
查看>>
人物角色群体攻击判定(一)
查看>>
JavaWeb学习过程 之c3p0的使用
查看>>
MySql Delimiter
查看>>
一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
查看>>
使用客户端对象模型读取SharePoint列表数据
查看>>
POJ 1328 Radar Installation 贪心
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
MySQL(一)
查看>>
企业级应用与互联网应用的区别
查看>>
Vue父子组件间的通信
查看>>
PHPCMS 模板的设置
查看>>
linux-2.6.38 input子系统(用输入子系统实现按键操作)
查看>>
单点登录 之 OAuth
查看>>