java 实现间隔k位翻转

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

http://www.nowcoder.com/questionTerminal/b49c3dc907814e9bbfa8437c251b028e

思路:

问题的关键是有一个 能够翻转链表 head 到 tail 之间链表的方法

让我们看一下这个reserve(head , tail ),执行效果

图片说明
##代码

  // 翻转链表 head tail 
  public void reserve(ListNode head, ListNode tail){
        ListNode iter = head.next;
        head.next = tail.next;
        ListNode boundary = head.next;
        ListNode tep;
        while (iter != boundary){
            tep = head.next;
            head.next = iter;
            iter = iter.next;
            head.next.next = tep;
        }
    }



    public ListNode reverseKGroup (ListNode head, int k) {
        // write code here
        ListNode h = new ListNode(0);
        h.next = head;
        ListNode iter = h;
        ListNode l = h;
        int count = 0;
        ListNode tep;
        while (iter != null){
            if(count == k){
                //保存下新的左边界,其实就是原左边界的下一个
                tep = l.next;
                reserve(l , iter);
                l = tep;
                iter = l;
                count = 0;
            }
            iter = iter.next;
            count++;
        }

        return h.next;
    }
全部评论
请问为什么原左边界的下一个呢,不是k个一组反转么,不能是原左边界的k个么
点赞 回复 分享
发布于 2021-01-10 09:49

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务