这篇文章将为大家详细讲解有关LeetCode如何实现部分链表反转,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
部分链表反转。
1)链表为空或者一个节点时,返回即可
2)获取链表长度,进行m,n范围检查。
3)头部部分保留m节点之前的链表第二。保留[m,n]之间的节点,包括m,n两个节点下一个。保留n节点后的节点。
4)使用* *列表方便给第一部分的结束结束后置空。第一是方便第二段链表的处理。
/**
*明确链接列表。
*structListNode{
* intval
*结构列表节点*下一步;
*};
*/
structuritnode *在(structuristnode * head,intm,intn)之间反转
{
if(head==NULL||head-next==NULL)
{
返回头
}
int len=0;
structuristnode * PlEN=head
for(;pLen=pLen-next)
{
透镜;
}
if(m1||nlen)
{
返回头
}
structuristnode * first=head
structuristnode * * list=head
int CNT=1;
for(;碳纳米管;cnt)
{
列表=(*列表)-下一个;
first=first-next;
}
*列表=空;
structuristnode * second=NULL
structListNode * next=空;
for(;CNT=n;cnt)
{
next=first-next;
first-next=second;
第二=第一;
第一个=下一个
}
first=head
而(第一!=NullFirst-下一个!=空)
{
first=first-next;
}
如果(头!=空)
{
first-next=second;
}
其他
{
head=秒;
}
first=head
而(第一!=NullFirst-下一个!=空)
{
first=first-next;
}
first-next=next;
返回头
}关于“LeetCode如何实现部分链表反转"这篇文章就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147010.html