题目

给一个单向链表和开始和结束的位置,将这两位置区间链表进行反转

java代码

/*** @Description:反转部分单向链表* @Author: lizhouwei* @CreateDate: 2018/4/6 20:30* @Modify by:* @ModifyDate:
*/
public class Chapter2_7 {public Node reversePart(Node head, int startIndex, int endIndex) {if (head == null || startIndex <= 0 || startIndex > endIndex) {return head;}Node preNode = null;//开始链表的前驱节点Node postNode = null;//结束节点的后继节点int len = 0;//链表长度Node cur = head;while (cur != null) {len++;preNode = len == startIndex - 1 ? cur : preNode;postNode = len == endIndex + 1 ? cur : postNode;cur = cur.next;}if(startIndex>len){return head;}Node node1 = preNode==null?head:preNode.next;Node node2 =node1.next;node1.next = postNode;Node next=null;while (node2!=postNode){next =  node2.next;node2.next =node1;node1 =node2;node2 = next;}//若preNode !=null,则不是从head开始反转的,链表头部依然是headif (preNode!=null){postNode.next = node1;return head;}//若preNode =null,则是从head开始反转的return node1;}//测试public static void main(String[] args) {Chapter2_7 chapter = new Chapter2_7();Link link = new Link();//构造两个链表for (int i = 10; i > 0; i--) {link.add(i);}Link.printLink(link.head);Node head = chapter.reversePart(link.head,1,5);Link.printLink(head);}
}

转载于:https://www.cnblogs.com/lizhouwei/p/8728920.html

《程序员代码面试指南》第二章 链表问题 反转部分单向链表相关推荐

  1. 程序员代码面试指南第二版 4.猫狗队列

    welcome to my blog 程序员代码面试指南第二版 4.猫狗队列 题目描述 题目描述 实现一种猫狗队列的结构,要求如下: 1. 用户可以调用 add 方法将 cat 或者 dog 放入队列 ...

  2. 《程序员代码面试指南第二版》Python实现(个人读书笔记)

    说明 最近在读左神的书---<程序员代码面试指南-IT名企算法与数据结构题目最优解(第二版)>以及看了一些左神的基础.进阶.高频等视频课程,为了记录自己的学习成果,并且方便以后查看,将自己 ...

  3. 算法大神左程云耗尽5年心血分享程序员代码面试指南第2版文档

    前言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...

  4. 《程序员代码面试指南》第二章 链表问题 删除无序链表中值重复的链表

    样例 998 998 998 999 999 999 1000 1000 1000 删除后为998 999 1000 java代码 /*** @Description:删除无序链表中值重复的链表* @ ...

  5. [读书笔记]《程序员代码面试指南》

    栈和队列: 1.设计一个有getMin功能的栈 题目: 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作. 要求: 1.pop.push.getMin操作的时间复杂度都是O( ...

  6. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体

    准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...

  7. 《程序员代码面试指南》第二章 链表问题 在单链表和双链表中删除倒数第K个节点...

    题目 在单链表和双链表中删除倒数第K个节点 java代码 /*** @Description:在单链表和双链表中删除倒数第K个节点* @Author: lizhouwei* @CreateDate: ...

  8. 《程序员代码面试指南》第二章 链表问题 搜索二叉树转换为双向链表

    样例 树的中序遍历:1 2 3 4 5 6 7 ,转换后双向链表的遍历:1 2 3 4 5 6 7 java代码 /*** @Description:搜索二叉树转换为双向链表* @Author: li ...

  9. 《程序员代码面试指南》第五章 字符串问题 拼接所有字符串产生字典顺序最小的大写字符串...

    题目 拼接所有字符串产生字典顺序最小的大写字符串 java代码 努力中.... 转载于:https://www.cnblogs.com/lizhouwei/p/8955158.html

最新文章

  1. 《LeetCode力扣练习》第13题 C语言版 (做出来就行,别问我效率。。。。)
  2. 【虚拟机】苹果虚拟机mac10.11.6+Xcode8.1
  3. linux shell 使用代理 proxychains 简介
  4. C++Primer笔记之复制控制
  5. 综合应用题:投票程序(知识点:对象,数组,循环,流,工具类的应用)
  6. C++11向线程函数传递参数
  7. 性能测试组件CodeBenchmark V2发布
  8. 国科大prml13-概率图(CRF,HMM)
  9. P5704 【深基2.例6】字母转换(python实现)
  10. 【李宏毅机器学习】Classification_1 分类(p10) 学习笔记
  11. 【好文推荐】梁宁:人一通透,就不怎么算小账
  12. 泰安的雾霾确实有点大
  13. 数字地球各类贴图资源下载地址
  14. 【电子电路】RS485收发器两种典型电路
  15. Global Mapper 将散点数据转为grd或者其他各种格式数据
  16. Linux Thermal Framework分析及实施
  17. 网站SEO优化高质量内容怎么写
  18. 20级逍遥装备材料汇总及出处
  19. 即时聊天工具混战中国
  20. 03-OSPF OE2和OE1外部路由详解

热门文章

  1. 读《大道至简—是懒人造就了方法 》有感
  2. 配置汇编环境:使用vs2010+MASM
  3. 转贴:电子商务如何提升网站转化率之:谷歌9条
  4. 深入Managed DirectX9(二)
  5. 编码是件有逻辑的事情
  6. Linux CentOS6离线安装Jupyter notebook
  7. 计算机病毒属于什么类工具,什么是计算机病毒?有哪些类型
  8. vfp程序改错 计算机和英语,vfp程序改错教案.doc
  9. 插入网站连接_带你了解网站设计的五个基本步骤
  10. oracle 数据库字段html显示正常text显示不全,layui表格字段表格显示不全(自适应)...