ListNode *reverseGroup(ListNode * aHead,int k){
ListNode dummy(-1);
ListNode *pre = &dummy;
pre->next = aHead;
while(pre->next){
tmp = pre->next;
pre->next = reverseKListNode(pre->next,k);
pre = tmp;
}
return dummy.next;
}
ListNode * reverseKListNode(ListNode * aHead,int k){// 能调用到这一步,aHead肯定不为NULL;
ListNode *pre = aHead,*curPtr=pre->next,*nextPtr=NULL;
for(int i = 0;(i < k)&&curPtr ;i++){
nextPtr = curPtr -> next;
curPtr -> next = pre;
pre = curPtr;
curPtr = next;
}
if( curPtr ) reutrn curPtr;
return pre;
}
Reverse Nodes in k Group
最新推荐文章于 2018-04-04 23:41:07 发布
本文介绍了一种使用递归方法反转链表中连续K个节点的算法。通过定义两个辅助函数,一个用于反转K个节点,另一个用于遍历整个链表并应用该反转操作,实现高效地链表部分反转。详细步骤和代码示例帮助读者理解算法的实现过程。
446

被折叠的 条评论
为什么被折叠?



