Java-链表的部分翻转
来源:互联网 发布:中国机电产品出口数据 编辑:程序博客网 时间:2024/06/06 09:45
package 链表_递归_栈;import java.util.Random;/* * 问题:给定一个链表,翻转该链表从m到n的位置。要求:直接翻转而非申请新空间 * 以第四个和第八个结点为范围:翻转前的链表:13,96,31,66,71,16,43,78,71,1,翻转后的链表:13,96,31,78,43,16,71,66,71,1, * */public class 链表的部分翻转 {public static void main(String[] args) throws Exception {ListNode h1 = getList(10);System.out.print("翻转前的链表:");ListNode l1 = h1.nextNode;while(l1 != null){System.out.print(l1.value + ",");l1 = l1.nextNode;}System.out.println();System.out.print("翻转后的链表:");ListNode headList = reverse(h1, 4, 8);ListNode l2 = headList.nextNode;while(l2 != null){System.out.print(l2.value + ",");l2 = l2.nextNode;}}//翻转链表public static ListNode reverse(ListNode head, int m, int n) throws Exception{if(m > n){throw new Exception("输入的翻转的范围有误!");}ListNode Head = head;ListNode cur = head.nextNode;int i;for(i = 0; i < m - 1; i++){//空循环找到m-1处//System.out.println(cur.value + ".");head = cur;cur = cur.nextNode;}ListNode pre = cur;//pre指向第m-1个结点的位置cur = cur.nextNode ;//第m个结点ListNode pnext;for(; i < n - 1; i++){//结合链表图来分析pnext = cur.nextNode;cur.nextNode = head.nextNode;head.nextNode = cur;pre.nextNode = pnext;cur = pnext;}return Head;}//随机生成一个链表,其中参数length是链表结点的个数public static ListNode getList(int length){Random r = new Random();if(length < 0){return null;}ListNode head = new ListNode();ListNode point = head;if(length == 0){return head;}for(int i = 0; i < length; i++){ListNode p = new ListNode(r.nextInt(100));point.nextNode = p;point = point.nextNode;//System.out.println(point.value + ",");}return head;}}
0 0
- Java-链表的部分翻转
- 链表部分翻转-Java
- 链表的部分翻转
- 链表的部分翻转
- 链表的部分翻转
- 翻转部分链表
- 翻转部分链表
- 部分翻转链表
- 算法学习-链表的部分翻转
- [C++]链表部分翻转
- 翻转有序链表的部分节点(美团)
- 面试题—链表的‘部分’翻转
- 字符串的部分翻转
- Java实现单链表部分翻转
- 无情链表的创建,,翻转翻转
- 链表的翻转
- 链表的翻转
- 链表的翻转
- iOS设置状态栏样式,statusBarStyle
- 淘宝开店 免支付宝手续费吗?为什么淘宝卖东西不收手续费
- JS-学习笔记:原生JS实现轮播图
- DSP CMD文件详解
- Keystone LDAP backend
- Java-链表的部分翻转
- js 生成笛卡尔积
- 【机器学习】one hot encoding 独热编码
- IOS 导航栏 设置半透明 跳转黑边的问题
- php 取得表单多选框值
- C/C++与JAVA函数方法传值原理分析
- MyEclipse 2016 Stable 1.0破解教程
- oracle坑
- Java设计模式(行为型)之-策略模式