文档章节

将单链表的每K个节点之间逆序

-_-struggle
 -_-struggle
发布于 2016/08/14 23:21
字数 125
阅读 7
收藏 0

//将单链表的每K个节点之间逆序
public Node reverseKNodes( Node head, int k) {
    if( k<2) return head;
    
    Node cur = head;
    Node start = null;
    Node pre = null;
    Node next = null;
    int count = 1;
    
    while( cur != null) {
        next = cur.next;
        if( count==k) {
            start = pre==null ? head:pre.next;
            head = pre==null ? cur:head;
        
            resign( pre, start, cur, next);
            pre = start;
            count=0;
        }
        count++;
        cur = next;
    }
    return head;
}


public void resign( Node left, Node start, Node end, Node right) {
    Node pre = start;
    Node cur = start.next;
    Node next = null;
    
    while( cur!=right) {
        next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
    }
    
    if( left!=null)
        left.next = end;
    start.next = right;
}

© 著作权归作者所有

共有 人打赏支持
上一篇: Java NIO和IO的区别
下一篇: DAO与DTO
-_-struggle
粉丝 3
博文 210
码字总数 50914
作品 0
苏州
后端工程师
私信 提问
《程序员代码面试指南》Python实现(个人读书笔记)

说明   最近一直在读左神的书——《程序员代码面试指南—IT名企算法与数据结构题目最优解》,为了记录自己的学习成果,并且方便以后查看,将自己读书时的想法与使用python实现的代码记录在...

qq_34342154
2017/09/09
0
0
网上流传的那些关于链表的面试问题

1、在O(1)时间删除链表节点 题目描述:给定链表的头指针和一个节点指针,在O(1)时间删除该节点。 思路分析:用下一个节点的数据覆盖要删除的节点,然后直接删除待删除节点的下一个节点就好了...

BMing
11/27
0
0
看图理解单链表反转

如何把一个单链表进行反转? 方法1:将单链表储存为数组,然后按照数组的索引逆序进行反转。 方法2:使用3个指针遍历单链表,逐个链接点进行反转。 方法3:从第2个节点到第N个节点,依次逐节...

牧师-Panda
2016/10/10
31
0
【C#】【数据结构】002-线性表:单链表

C#数据结构:单链表 1、自定义单链表结构: 单链节点类 单链表类 单链表测试用例: 运行结果: 注意: 1.单链表在访问值时,只能从头节点访问下去,只能通过前一节点访问到下一节点,很多时候...

lijianfex
11/19
0
0
面试精选之链表问题集锦

链表问题是面试过程中经常被问到的一部分,很考查编程功底。最近刷了 LeetCode 上链表部分的面试题,我总结了一些有代表性的链表问题。 本文使用的是 Java 语言,下面是所用到的链表节点的定...

JohnnyShieh
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Binary Tree Level Order Traversal(二叉树的层次遍历)

描述 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7 返回他的分层遍历结果: [ [3], [...

honeymose
9分钟前
0
0
Spring Cloud Config 规范

Spring Cloud Config 规范 首先Spring Cloud 是基于 Spring 来扩展的,Spring 本身就提供当创建一个Bean时可从Environment 中将一些属性值通过@Value的形式注入到业务代码中的能力。那Sprin...

阿里云官方博客
19分钟前
0
0
renderer

renderer Function 单元格绘制处理函数,同drawcell事件。

architect刘源源
30分钟前
4
0
jdk1.8 lambda表达式过滤重复的对象

//操作类public class BizAgentAudit {    private String supplierOrgId;    private int age;    private String name;        public BizAgentAudit() { ...

INSISTQIAO
31分钟前
3
0
DataUtil的日期处理

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类。 解决方法 1、将SimpleDateFormat定义成局部变量。 缺点:每调用...

DoLo-lty
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部