`
jbm3072
  • 浏览: 211223 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[编程实现单链表逆转][java代码]

    博客分类:
  • Java
阅读更多

代码如下,核心的代码在于:

	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;
		
	}
	

 

 

 

 

整个程序如下所示:

 

package com.jy.list;

public class ReverseList {
	public static void main(String[] args) {
		Node head = add(null, "a");
		add(head, "b");
		add(head, "c");
		add(head, "d");
		add(head, "e");
		print(head);
		head = reverse(head);
		print(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  Node add(Node head,String data) {
		if(head==null) {
			return new Node(data);
		} else {
			Node p = head;
			while(p.next!=null) {
				p = p.next;
			}
			p.next = new Node(data);
			return head;
		}
	}
	
	public static void print(Node head) {
		if(head==null) {
			System.out.println("null");
		}else {
			Node p = head;
			while(p!=null) {
				System.out.print(p.data+"\t");
				p = p.next;
			}
			System.out.print("\n");
		}
	}
}


class Node {
	public Node(String data2) {
		this.data = data2;
	}
	public String toString() {
		return data;
	};
	String data;
	Node next;
	
}
 
0
0
分享到:
评论

相关推荐

    java 实现单链表逆转详解及实例代码

    单链表分段逆转 java 实现单链表逆转详解及实例代码

    单链表逆转操作

    单链表逆转操作,在笔试中经常可见 1实现整体逆转 2.实现相邻元素逆转

    单链表逆转

    使用C++描述的单链表处理程序源代码,可以实现单链表的逆转等操作。CodeBlocks下调试通过。

    使一个循环单链表逆转

    `reverse.cpp`文件则是实现逆转链表的源代码。逆转循环单链表的基本思路是使用三个指针,分别指向当前节点、前一个节点和后一个节点。在遍历过程中,不断更新这三个指针的指向,直到完成逆转。代码可能如下: ```...

    单链表的创建于逆转

    总结一下,这个C++实现涵盖了单链表的基本操作:创建链表和逆转链表。对于初学者来说,理解这些概念和代码是学习数据结构和算法的基础。熟练掌握单链表的创建和操作,有助于进一步学习更复杂的数据结构,如双链表、...

    O n 复杂度实现单链表的逆转

    一个C程序 实现了单链表的逆序 且复杂度为O n

    单链表的逆转求和

    单链表的逆转求和,根据输入,完成单链表的建立操作,然后实现单链表的逆转,输出逆转之后各几点的元素值,最后输出所有元素之和。

    03016202万玥汝第一次实验报告_单链表逆转_单链表后插入新节点_删除结点_查找结点_

    在这个实验中,学生万玥汝通过编程实现了这些功能,这有助于深化对单链表操作的理解,提升编程技能。在实际应用中,单链表广泛用于数据存储、队列、栈等数据结构,以及各种算法实现。熟练掌握单链表的这些基本操作...

    PAT-单链表分段逆转

    PAT 单链表分段逆转 单链表分段逆转 单链表分段逆转 单链表分段逆转 单链表分段逆转

    单链表的插入、删除、逆转等实现

    ### 单链表的基本操作与实现 #### 一、单链表的概念与结构定义 单链表是一种线性数据结构,其中每个元素都是一个独立的对象,称为节点(Node)。每个节点包含两部分:一部分用于存储数据(Data),另一部分则包含...

    PTA习题:数据结构与算法题目集1

    这是一道典型的链表操作题目,要求实现一个函数`Reverse`来逆转给定的单链表。在链表中,每个节点包含数据和指向下一个节点的指针。逆转链表意味着将原来的前后关系颠倒,使原链表的最后一个节点成为新链表的第一个...

    逆转线性单链表.doc

    在给定的代码中,我们看到一个C++模板类实现的线性单链表逆转函数。首先,我们需要了解链表的基本概念和结构: 1. **链表节点结构**:`node` 是一个模板类,它定义了一个泛型数据类型 `T` 的成员变量 `d`(代表数据...

    3_单链表的逆转.cpp

    3_单链表的逆转.cpp

    单链表逆置

    ### 单链表逆置知识点解析 #### 一、单链表基础概念 单链表是一种常见的线性数据...通过以上分析,我们可以了解到单链表逆置的基本原理及其在代码中的实现方式。对于理解和掌握数据结构与算法的设计有着重要的意义。

    单向链表逆转单向链表逆转单向链表逆转

    "单向链表逆转" 在计算机科学中,链表是一种基本的数据结构,它是一种动态的数据结构,可以存储大量的数据。...在C++中,可以通过结构体和函数来实现链表的创建、显示和逆转。链表有很多优点,但是也有一些缺点。

    单链表倒序算法.doc

    在上面的代码中,我们使用了递归的方式来实现单链表倒序算法。 4. 打印链表 最后,我们需要打印链表,以验证单链表倒序算法的正确性。在上面的代码中,我们使用了 `print` 函数来打印链表。 单链表倒序算法的实现...

    纯C语言单链表的逆转,前驱插入,后驱插入,排序(适用于节点数据大,避免对数据拷贝的排序,可以对节点数据较大的程序提升性能)

    在IT领域,尤其是在系统编程和低级数据结构的实现中,C语言经常被用来构建高效且灵活的数据结构。本主题关注的是单链表的操作,包括逆转、前驱插入和后驱插入,以及一种特殊的排序方法,特别适用于节点数据较大,...

Global site tag (gtag.js) - Google Analytics