#yyds干货盘点# 面试必刷TOP101:链表中的节点每k个一组翻转

网友投稿 598 2022-10-26

#yyds干货盘点# 面试必刷TOP101:链表中的节点每k个一组翻转

#yyds干货盘点# 面试必刷TOP101:链表中的节点每k个一组翻转

1.简述:

描述

将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。

例如:

示例1

输入:

{1,2,3,4,5},2

返回值:

{2,1,4,3,5}

示例2

输入:

{},1

返回值:

{}

2.代码实现:

import java.util.*;public class Solution { public ListNode reverseKGroup (ListNode head, int k) { //找到每次翻转的尾部 ListNode tail = head; //遍历k次到尾部 for(int i = 0; i < k; i++){ //如果不足k到了链表尾,直接返回,不翻转 if(tail == null) return head; tail = tail.next; } //翻转时需要的前序和当前节点 ListNode pre = null; ListNode cur = head; //在到达当前段尾节点前 while(cur != tail){ //翻转 ListNode temp = cur.next; cur.next = pre; pre = cur; cur = temp; } //当前尾指向下一段要翻转的链表 head.next = reverseKGroup(tail, k); return pre; }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Maven环境搭建
下一篇:AVFonts用于在整个应用程序中更改/交换字体名称
相关文章

 发表评论

暂时没有评论,来抢沙发吧~