和使用三个指针翻转链表的思路差不多。
提交代码
class Solution {
public ListNode reverseKGroup(ListNode head, int k) {
ListNode p=head;
for(int i=0;i<k;i++) {
if(p==null) return head;
p=p.next;
}
ListNode dummy=new ListNode(-1);
dummy.next=head;
ListNode tail=head,tmpHead;
for(int i=1;i<k;i++) {
tmpHead=dummy.next;
dummy.next=tail.next;
tail.next=tail.next.next;
dummy.next.next=tmpHead;
}
tail.next=reverseKGroup(tail.next,k);
return dummy.next;
}
}
运行结果

本文介绍了一种链表K组翻转的算法实现,通过使用递归和三个指针的方法,有效地实现了链表的局部翻转。文章详细展示了如何在满足特定条件的情况下,将链表的每K个节点进行翻转,并提供了完整的代码示例。
788

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



