博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java数据结构】Java数据结构之链表反转
阅读量:5208 次
发布时间:2019-06-14

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

我们都知道用C可以很简单的实现单链表反转,今天来学习下,在Java中如何实现链表反转。

思路很简单,定义一个类,这个类分成2块,一块是表示自身的标志,另外一个存储指向下一个元素的引用。通过互换相邻两个节点的引用来达到链表反转的效果。上代码:

 

package com.withiter.test;public class ReverseList {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		Node nodeLink = add("1", null);		add("2", nodeLink);		add("3", nodeLink);		add("4", nodeLink);		add("5", nodeLink);		print(nodeLink);		nodeLink = reverse(nodeLink);		print(nodeLink);	}	public static Node add(String name, Node head) {		if (head == null) {			return new Node(name);		} else {			Node p = head;			while (p.next != null) {				p = p.next;			}			p.next = new Node(name);			return head;		}	}        // 反转的核心方法	public static Node reverse(Node head){		if(head == null){			return null;		}		Node p = head;		Node q = head.next;		p.next = null;		while(q != null){			Node temp = q.next;              q.next = p;              p = q;              q = temp;  		}				return p;	}		public static void print(Node head) {		if (head == null) {			System.out.println("null");		} else {			Node p = head;			while (p != null) {				System.out.print(p.name + "\t");				p = p.next;			}			System.out.print("\n");		}	}}class Node {	public Node(String name) {		super();		this.name = name;	}	public String name; // 自身标志	public Node next; // 指向下一个节点的引用}

 

运行打印结果:

1    2    3    4    5    

5    4    3    2    1    

 

转载于:https://www.cnblogs.com/james1207/p/3306430.html

你可能感兴趣的文章
iOS 6 编程 - 自动布局(Auto Layout)系列文章
查看>>
一. python的collections模块
查看>>
Linux之路(原发表于07年,现在搬到博客)
查看>>
Varnish
查看>>
20155338 《JAVA程序设计》实验五网络编程与安全实验报告
查看>>
查看Weblogic JNDI 树的几种方式
查看>>
组件之间的通信(持续补充)
查看>>
Objective-C基础教程学习笔记(七)Xcode快捷健
查看>>
Ubuntu下的UNITY和GNOME界面
查看>>
SVN备份及其还原 — dump/load方法
查看>>
设计模式-组合模式(Composite Pattern)
查看>>
没有工作经验,没有的究竟是什么?
查看>>
《沉思录卷二》做每一件事都像做最后一件事
查看>>
Axure RP 7.0注册码
查看>>
hdu1873 看病要排队【优先队列】
查看>>
Poj 2528 Mayor's posters (线段树+离散化)
查看>>
Hibernate集合的配置
查看>>
Maven发布项目 (jar包) 到Nexus私服中
查看>>
Spring - IoC(1): Spring 容器
查看>>
MongoDB - The mongo Shell, Configure the mongo Shell
查看>>