206--Reverse A Singly Linked List
2024-10-19 13:38:33
package LinedList; public class ReverseASinglyLinkedList {
//解法一:迭代。
public ListNode reverseList(ListNode head) {
ListNode previous = null;
ListNode current = head;
while (current != null) {
ListNode next = current.next;
current.next = previous;
previous = current;
current = next;
}
return current;
}
/**
* 解法二:递归
* 递归的思路其实和迭代一样,就是处理两个节点,让它们之间的指针反转。
* 只是,迭代是从头到尾依次处理,需要一个额外的指针来指向下一个节点。
* 而递归是从尾到头,回溯的时候会有当前的节点,所以不需要额外的指针。
* 还需要注意的是:p是反转后的整个链表的头节点,它第一次找到后,就没有作任何处理。
* 而不是每次要处理(反转)的那个节点。
*/
public ListNode reverseList2(ListNode head) {
if (head==null||head.next==null)
return head;
ListNode p=reverseList2(head.next);
head.next.next=head;
head.next=null;
return p;
}
}
最新文章
- BZOJ3160: 万径人踪灭
- WebApi 接口测试工具:WebApiTestClient
- [原创]CI持续集成系统环境---部署Gitlab环境完整记录
- MongoDB的安装、配置服务(转)
- 使用Flex4的PopUpManager的addPopUp() 方法弹出 removeChild异常的解决办法
- 透过数据看现实,漫谈实况FIFA的这些年
- jquery 插件开发及extend
- [React Native] Reusable components with required propType
- 从lca到树链剖分 bestcoder round#45 1003
- javaWEB总结(6):ServletRequest
- awk 里的substr()
- ls-grep-find组合命令解决企业问题实战
- Intellij IDEA查看所有断点
- 第一册:lesson seventy one.
- 大明A+B
- 修改mysql忽略大小写
- 前端 HTML form表单标签 input标签 type属性 重置按钮 reset
- 使用 IntraWeb (7) - 主模板
- Python基础入门(一)
- Singleton 单例模式 MD
热门文章
- 41 修改树莓派交换分区 SWAP 的大小
- 前端css命名规范----BEM
- [LeetCode] 208. Implement Trie (Prefix Tree) 实现字典树(前缀树)
- [LeetCode] 82. Remove Duplicates from Sorted List II 移除有序链表中的重复项之二
- 关于Dev-C++用户所必须知道的知识
- wpf “{DependencyProperty.UnsetValue}”不是属性“Background”的有效值。异常
- rdd 基本操作
- linux-centos安装图解及配置IP远程连接
- AngularJS入门Demo
- CopyOnWriteArraySet 源码分析