代码如下,核心的代码在于:
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;
}
分享到:
相关推荐
单链表分段逆转 java 实现单链表逆转详解及实例代码
单链表逆转操作,在笔试中经常可见 1实现整体逆转 2.实现相邻元素逆转
使用C++描述的单链表处理程序源代码,可以实现单链表的逆转等操作。CodeBlocks下调试通过。
`reverse.cpp`文件则是实现逆转链表的源代码。逆转循环单链表的基本思路是使用三个指针,分别指向当前节点、前一个节点和后一个节点。在遍历过程中,不断更新这三个指针的指向,直到完成逆转。代码可能如下: ```...
总结一下,这个C++实现涵盖了单链表的基本操作:创建链表和逆转链表。对于初学者来说,理解这些概念和代码是学习数据结构和算法的基础。熟练掌握单链表的创建和操作,有助于进一步学习更复杂的数据结构,如双链表、...
一个C程序 实现了单链表的逆序 且复杂度为O n
单链表的逆转求和,根据输入,完成单链表的建立操作,然后实现单链表的逆转,输出逆转之后各几点的元素值,最后输出所有元素之和。
在这个实验中,学生万玥汝通过编程实现了这些功能,这有助于深化对单链表操作的理解,提升编程技能。在实际应用中,单链表广泛用于数据存储、队列、栈等数据结构,以及各种算法实现。熟练掌握单链表的这些基本操作...
PAT 单链表分段逆转 单链表分段逆转 单链表分段逆转 单链表分段逆转 单链表分段逆转
### 单链表的基本操作与实现 #### 一、单链表的概念与结构定义 单链表是一种线性数据结构,其中每个元素都是一个独立的对象,称为节点(Node)。每个节点包含两部分:一部分用于存储数据(Data),另一部分则包含...
在给定的代码中,我们看到一个C++模板类实现的线性单链表逆转函数。首先,我们需要了解链表的基本概念和结构: 1. **链表节点结构**:`node` 是一个模板类,它定义了一个泛型数据类型 `T` 的成员变量 `d`(代表数据...
3_单链表的逆转.cpp
这是一道典型的链表操作题目,要求实现一个函数`Reverse`来逆转给定的单链表。在链表中,每个节点包含数据和指向下一个节点的指针。逆转链表意味着将原来的前后关系颠倒,使原链表的最后一个节点成为新链表的第一个...
### 单链表逆置知识点解析 #### 一、单链表基础概念 单链表是一种常见的线性数据...通过以上分析,我们可以了解到单链表逆置的基本原理及其在代码中的实现方式。对于理解和掌握数据结构与算法的设计有着重要的意义。
"单向链表逆转" 在计算机科学中,链表是一种基本的数据结构,它是一种动态的数据结构,可以存储大量的数据。...在C++中,可以通过结构体和函数来实现链表的创建、显示和逆转。链表有很多优点,但是也有一些缺点。
在上面的代码中,我们使用了递归的方式来实现单链表倒序算法。 4. 打印链表 最后,我们需要打印链表,以验证单链表倒序算法的正确性。在上面的代码中,我们使用了 `print` 函数来打印链表。 单链表倒序算法的实现...
在IT领域,尤其是在系统编程和低级数据结构的实现中,C语言经常被用来构建高效且灵活的数据结构。本主题关注的是单链表的操作,包括逆转、前驱插入和后驱插入,以及一种特殊的排序方法,特别适用于节点数据较大,...