题解 | #链表中的节点每k个一组翻转#

链表中的节点每k个一组翻转

https://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param k int整型 
     * @return ListNode类
     */
    public ListNode reverseKGroup (ListNode head, int k) {
        int i = 1;
        boolean setHead = false;
        ListNode newHead = head, oldHead = head, curNode = null, lastTail = null, tempNode = null;
        if(head == null || head.next == null || k ==1){//排除特殊情况 图个轻松哈哈 不完美
            return head;
        }
        while(head != null){
            if(i /k > 0){
                curNode = head.next;//cut list and save
                head.next = null;

                tempNode = revert(oldHead);//revert and connect
                oldHead.next = curNode;// first time,only connect next head to tail

                if(lastTail != null){
                    lastTail.next = tempNode;//other time connect head to pre tail in addition
                }
                if(!setHead){//record head of the new listnode to return
                    newHead = tempNode;
                    setHead = true;
                }
                lastTail = oldHead;
                head = curNode;
                oldHead = curNode;
                i = 1;
            }
            if(head != null){
                head = head.next;
                i++;
            }
        }
        return newHead;
    }

    private ListNode revert(ListNode eNode){
        ListNode pre = null, next = null;
        while(eNode != null){
            next = eNode.next;
            eNode.next = pre;
            pre = eNode;
            eNode = next;
        }

        return pre;
    }
}

全部评论

相关推荐

07-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务