反转链表
来源:互联网 发布:node.js 安装 编辑:程序博客网 时间:2024/03/29 15:29
输入一个链表,反转链表后,返回新的头节点
class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}/** * 方法1:先cur.next = pre,再递归reverse(cur, cur'.next),同时上传新的头节点 */public class Solution { public ListNode ReverseList(ListNode head) { if(head == null) return null; ListNode newHead = reverse(head, head.next); head.next = null; return newHead; } public static ListNode reverse(ListNode pre, ListNode now){ if(now == null) return pre; ListNode temp = now.next; now.next = pre; return reverse(now ,temp); }}/** * 方法2:方法1的while循环版本,cur.next = pre, cur = cur'.next */public class Solution { public ListNode ReverseList(ListNode head) { if (head == null) return null; ListNode cur = head.next, pre = head, temp; head.next = null; while (cur != null) { temp = cur.next; cur.next = pre; pre = cur; cur = temp; } return pre; }}/** * 方法3:先递归reverse(cur.next),再cur.next.next = cur,同时将新头节点上传 */public class Solution { public ListNode ReverseList(ListNode head) { if(head==null || head.next == null) return head; ListNode newHead = ReverseList(head.next); head.next.next = head; head.next = null; return newHead; }}
0 0
- 链表反转
- 反转链表
- 单向链表反转
- 链表反转:
- 链表的反转
- 链表反转
- 反转单向链表
- 链表反转
- 单向链表反转
- 单向链表反转
- 链表的反转
- 链表反转
- 反转链表
- 链表反转
- 链表反转
- 链表反转
- 链表反转
- 链表的反转
- FFmpeg中的滤镜(十):视频滤镜 -- blend, tblend
- 通过Process 遇到的坑
- 后缀数组 资料
- hash的简单应用
- 定时器的使用方法
- 反转链表
- UVA - 550 Multiplying by Rotation
- HDU:1260 Tickets(动态规划DP)
- Linux命令--YUM
- Android 中dialog的使用
- Java 枚举深入分析
- Java并发编程(五)ConcurrentHashMap的实现原理和源码分析
- 打印一个数的二进制形式
- 面经学习