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】

一、头插法创建&原地逆置单链表public class RotateList { public static void main(String[] args) { int [] ...

java 链表 头/尾插法

尾插法示意图 import java.io.*; import java.util.*;class Node { int data; Node next; Node(int ...

头插法实现链表反转

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

单链表的逆置(头插法和就地逆置)

今天课间的时候偶然看到了一个面试题:单链表的逆置,看了题解感觉乖乖的,貌似和以前看的版本不搭,于是重新进行了一番探究 单链表的逆置分为两种方法:头插法和就地逆置法,这两种方法虽然都能够达到逆置的效果,...

C实现头插法和尾插法来构建单链表(不带头结点)

链表的构建其实也就是不断插入节点的过程。而节点的插入可以分为头插法和尾插法。头插法就是在头结点后插入该节点,始终把该节点作为第一个节点。尾插法就是在链表的最后一个节点处插入元素,作为最后一个节点。如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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