博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 实现单链表反序
阅读量:7238 次
发布时间:2019-06-29

本文共 1737 字,大约阅读时间需要 5 分钟。

//单链表反序public class SingleLinkedListReverse {		public static void main(String[] args) {		Node head = new Node(0);		Node temp = null;		Node cur = null;				for (int i = 1; i <= 10; i++) {			temp = new Node(i);			if (i == 1) {				head.setNext(temp);			} else {				cur.setNext(temp);			}			cur = temp;		}//10.next = null;				Node h = head;		while (h != null) {			System.out.print(h.getData() + "\t");			h = h.getNext();		}		System.out.println();				//反转1//		h = Node.reverse1(head);//		while (h != null) {//			System.out.print(h.getData() + "\t");//			h = h.getNext();//		}				//反转2		h = Node.reverse1(head);		while (h != null) {			System.out.print(h.getData() + "\t");			h = h.getNext();		}					}}/* * 单链表的每一个节点都含有指向下一个节点属性 */class Node {	Object data;//数据对象 	Node next; //下一节点		Node(Object d) {		this.data = d;	}	Node(Object d, Node n) {		this.data = d;		this.next = n;	}	public Object getData() {		return data;	}	public void setData(Object data) {		this.data = data;	}	public Node getNext() {		return next;	}	public void setNext(Node next) {		this.next = next;	}	//方法1  head被重置	static Node reverse1(Node head) {		Node p = null; //反转后新的 头		Node q = head;		//轮换结果:012,123,234,.... 10 null null		while (head.next != null) {			p = head.next;		// 第1个 换成第2个  这时p表示原始序列头中的next			head.next = p.next;  // 第2个 换成第3个			p.next = q;			//已经跑到第1位置的原第2个的下一个 就要变成 原第1个			q = p;				//新的第1个 要变成 当前第一个		}		return p;			}	//方法2 head没重置	static Node reverse2(Node head) {		//将中间节点的指针指向前一个节点之后仍然能够继续向后遍历链表		Node p1 = head, p2 = head.next, p3; // 前 中 后		//轮换结果 :012, 123, 234, 345, 456.... 9 10 null		while (p2 != null) {			p3 = p2.next;  			p2.next = p1; //指向后 变 指向前			p1 = p2; 	 //2、3向前挪			p2 = p3;		}		head.next = null;//head没变,当输出到0时。再请求0.next 为1		return p1;	}}

转载地址:http://frofm.baihongyu.com/

你可能感兴趣的文章
使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)
查看>>
JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录...
查看>>
Linux 之归档与压缩
查看>>
擦亮双眼,愚人节彩蛋回顾
查看>>
RDS全量物理备份谁才能读
查看>>
微软专家推荐11个Chrome 插件
查看>>
阿里数据库内核月报:2017年06月
查看>>
【案例】slave_net_timeout 问题一则
查看>>
根据搜索引擎网页去重原理来做seo
查看>>
Linux 系统挂载数据盘
查看>>
bootstrap 非原生checkbox 导致上级tr 点击两次的问题 真tm坑 研究了好久
查看>>
SQL SERVER 中is null 和 is not null 将会导致索引失效吗?
查看>>
CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
查看>>
HDOJ 2045 不容易系列之(3)—— LELE的RPG难题
查看>>
Mysql学习笔记(八)索引
查看>>
初探Java8中的HashMap(转)
查看>>
第一章(2)——预估和实际执行计划
查看>>
0324alter system checkpoing会写脏块吗
查看>>
使用GDB进行嵌入式远程调试
查看>>
文件剪切的sh脚本实现
查看>>