Reverse Linked ListII
来源:互联网 发布:你别无选择 知乎 编辑:程序博客网 时间:2024/06/07 21:13
public class ReverseLinkedListII {
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public ListNode reverseBetween(ListNode head, int m, int n) {
int chang_len=n-m+1; //计算需要逆置的节点个数
ListNode pre_head=null; //初始化开始节点的前驱节点
ListNode result=head; //最终转换后的头结点,非特殊情况几位head
while(head!=null && --m>0){
pre_head=head; //将1保存到pre_head
head=head.next; //讲head前移m-1个位置 2-1 移动一个位置 //移动到2处
}
ListNode modify_list_tai=head; //把2存储起来
ListNode new_head=null; //新链表
while(head!=null&&chang_len>0){
ListNode next=head.next;//3 //这是把4给存储起来 //5
head.next=new_head; //讲2的下一个节点指向new_head //将3的下一个节点指向2 //4-3
new_head=head;//2 //讲new_head指针指向3 //4
head=next;//3 //将head指针指向4 //5
chang_len--;
}
modify_list_tai.next=head; //2的下一个节点指向5
if(pre_head!=null){ //prehead不空,说明不是从第一个节点开始逆置的吗m>1
pre_head.next=new_head; //1指向4
}else{
result=new_head;
}
return result;
}
}
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public ListNode reverseBetween(ListNode head, int m, int n) {
int chang_len=n-m+1; //计算需要逆置的节点个数
ListNode pre_head=null; //初始化开始节点的前驱节点
ListNode result=head; //最终转换后的头结点,非特殊情况几位head
while(head!=null && --m>0){
pre_head=head; //将1保存到pre_head
head=head.next; //讲head前移m-1个位置 2-1 移动一个位置 //移动到2处
}
ListNode modify_list_tai=head; //把2存储起来
ListNode new_head=null; //新链表
while(head!=null&&chang_len>0){
ListNode next=head.next;//3 //这是把4给存储起来 //5
head.next=new_head; //讲2的下一个节点指向new_head //将3的下一个节点指向2 //4-3
new_head=head;//2 //讲new_head指针指向3 //4
head=next;//3 //将head指针指向4 //5
chang_len--;
}
modify_list_tai.next=head; //2的下一个节点指向5
if(pre_head!=null){ //prehead不空,说明不是从第一个节点开始逆置的吗m>1
pre_head.next=new_head; //1指向4
}else{
result=new_head;
}
return result;
}
}
阅读全文
0 0
- Reverse Linked ListII
- 2.2.2Reverse Linked ListII
- LeetCode92之Reverse Linked ListII的 Java题解
- Single linked list reverse
- reverse a linked list
- Reverse a linked list.
- Reverse a linked list
- 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
- 2014-04-03-editplus,快速编译运行,注册激活
- 单链表,双链表,循环链表的区别
- python 编写 cgi 脚本
- windows下vagrant和virtualbox搭建开发环境
- 利用Python抢票,攻破12306的最后一道防线
- Reverse Linked ListII
- FPGA入门实验五:多周期移位寄存器
- 获取缓存大小和清除缓存功能
- Parallel File System 并行文件系统
- 全国首个人工智能商业案例榜单:「AI最佳掘金案例年度评选」正式启动
- 深度学习系列之二:卷积神经网络 | 公开课
- 第3弹!CS231n 2017中文字幕视频:损失函数和优化
- ccf201709-2
- distinct-subsequences