FTPrep, 92 Reverse Linked List II
来源:互联网 发布:mac怎么退出vim 编辑:程序博客网 时间:2024/06/06 01:19
这题很不错,是对之前的 reverse list 的加强。之前是reverse the whole list, 这里是partially的。
也就是说要break up成3段,前两段的头尾都要记录,最后一段要记录头结点,最后拼接。
中间那段需要reverse的,就通过之前的方法:头删+头插,头删需要2个pointer,头插需要一个pointer。
代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { if(m==n) return head; ListNode dummy=new ListNode(0); dummy.next=head; ListNode curr=dummy; // 一开始就指向第一个node了,要指向第m-th个node,只要移动(m-1)次。 for(int count=1; count<m; count++){ curr=curr.next; } ListNode lastNodeInFirstFragment= curr; // 标记好第一个fragment的最后一个node ListNode lastNodeInSecondFragment =curr.next; // 同时这后面的一个node,也是第二个fragment的最后一个node,在之前就判断了(m==n)的情况 // 下面的三个指针就是 reverse list那道题 #206 用到的三个指针:前两个用于老链头删:1个用来向后移动维护list,另一个用来track 当前被删除的node; // 第三个指针就是新链dummyNode,用于新建list的通用做法。 curr=curr.next; ListNode tail=curr; ListNode dummyForSecondFrag= new ListNode(0); for(int count=1; count<=n-m+1; count++){ tail=tail.next; curr.next=dummyForSecondFrag.next; dummyForSecondFrag.next=curr; curr=tail; } lastNodeInFirstFragment.next=dummyForSecondFrag.next; lastNodeInSecondFragment.next=tail; return dummy.next; }}
阅读全文
0 0
- FTPrep, 92 Reverse Linked List II
- 92Reverse Linked List II
- 92Reverse Linked List II
- 92 Reverse Linked List II
- 92-reverse linked list II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- 内部类的定义
- codeforces 840E (树状数组+离散化+缩点)
- AWT的基础知识
- Ubuntu更改软件源
- Android TV 官方教程简读4-Creating TV Navigation
- FTPrep, 92 Reverse Linked List II
- Jenkins : Jenkins+Maven+GitHub实现持续集成
- bash/zsh 快捷键
- PHP操作数据库(一)-步骤介绍
- 9.23linux基础
- spring AOP
- STL的学习之(一)list和pair对组的使用
- 淘宝微信如何进入微信推广?
- STM32小常识