java头插法实现单链表逆置

原创 2016年08月28日 18:36:09

头插法和本地逆置在程序里实现起来是一样的,区别在思维方式上。引用小象学院林沐老师的课件:


修正了之前我写的Java程序:

package test;

class Node
{
	int data;
	Node nextNode;
}

public class testFour {
	public static Node reverse(Node head)
		{
			if(null == head || null == head.nextNode)
			{
				return head;
			}
			
			Node tempHead = new Node(); //新链的头节点
			while(head.nextNode != null)
			{
				Node next = head.nextNode;
				head.nextNode = tempHead.nextNode;
				tempHead.nextNode = head;
				head = next;
			}
			return tempHead.nextNode;
		}
	
	public static void main(String[] args) {
		Node node = new Node();
		node.data = 1;
		Node nextnode = new Node();
		nextnode.data = 2;
		Node node3 = new Node();
		node3.data = 3;
		Node node4 = new Node();
		node4.data = 4;
		Node node5 = new Node();
		node5.data = 5;
		node.nextNode = nextnode;
		nextnode.nextNode = node3;
		node3.nextNode = node4;
		node4.nextNode = node5;
		node5.nextNode = null;
		
		Node newHead = new Node();
		newHead = reverse(node);
		while(newHead.nextNode != null)
		{
			System.out.println(newHead.data);
			newHead = newHead.nextNode;
		}
		System.out.println(newHead.data);
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

单链表就地逆置(Java版)

题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1)。所谓“就地”指辅助存储空间为O(1)。 ...
  • lavor_zl
  • lavor_zl
  • 2015年01月16日 15:29
  • 3359

单链表逆置-java(递归与非递归)

单链表逆置-java(递归与非递归)结点是一个自定义的类Node:private class Node { public int value; public Node nextNode...
  • a740169405
  • a740169405
  • 2016年02月17日 19:34
  • 2126

Java数据结构-线性表之单链表应用-单链表的逆置

单链表的逆置,就是将现有单链表中的元素的顺序倒置过来。之前提过单链表的整表创建,那里曾说过两种方法:头插法和尾插法; 在我的Java版本的LinkedList中,添加方法使用的是尾插法。 而单链表...
  • yannanying
  • yannanying
  • 2015年07月19日 23:19
  • 1233

单链表就地逆置(Java版),单链java版

题目:有一个线性表(a1,a2,a3,...,an),采用带头节点的单链表L存储,设计一个算法将其就地逆置,线性表变为(an,...a3,a2,a1)。所谓“就地”指辅助存储空间为O(1)。 ...
  • qq991029781
  • qq991029781
  • 2015年02月26日 14:59
  • 419

链表逆置For Java

Java版链表逆置 定义数据结构: /** * 链表的数据结构 */ class LinkedListArray { /** * value */ Object...
  • hhxin635612026
  • hhxin635612026
  • 2015年07月14日 11:29
  • 971

单链表逆置的完整实现 java版

简单思路就是把各个节点的next指针 从原来的指向下一个元素 变为指向 前一个元素。并做循环处理 public class LinkReverse { public stati...
  • zhongdong00
  • zhongdong00
  • 2013年07月27日 00:07
  • 764

头插法创建&原地逆置单链表 【Java】

一、头插法创建&原地逆置单链表public class RotateList { public static void main(String[] args) { int [] ...
  • tterminator
  • tterminator
  • 2016年04月23日 18:19
  • 1052

java 使用头插法实现反转链表

一直以来都是使用c来操作链表,c的zhen
  • xiongjiezk
  • xiongjiezk
  • 2014年07月05日 16:29
  • 555

头插法实现链表反转

以包含四个元素、带有头结点的链表l为例: head->a1->a2->a3->a4; 保持头结点不变,头插法实现链表反转步骤为: 1: 将a2插在a1前面,该链表变为: head->a2->a...
  • jiao1197018093
  • jiao1197018093
  • 2016年11月20日 12:04
  • 834

使用java实现的超简单的单向链表 头插法

//链表节点类实现 public class NodeT> { /** * 下一个节点 */ NodeT> next; /** * 节点存储的...
  • q178266871
  • q178266871
  • 2016年02月21日 20:44
  • 1487
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java头插法实现单链表逆置
举报原因:
原因补充:

(最多只允许输入30个字)