`
zy3381
  • 浏览: 157690 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

倒置链表

 
阅读更多
class Node
{
	public int data;
	public Node next;
	public Node(int data)
	{
		this.data = data;
	}
}
public class Main
{
	public static void reverse(Node head)
	{
		System.out.println("Reverse()");
		Node p1 = head.next;
		Node p2 = head.next;
		head.next = null;
		while(p1 != null)
		{
			p2 = p1.next;
			p1.next = head.next;
			head.next = p1;
			p1 = p2;
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Node head = new Node(0);
		Node node1 = new Node(1);
		Node node2 = new Node(2);
		Node node3 = new Node(3);
		Node node4 = new Node(4);
		head.next = node1;
		node1.next = node2;
		node2.next = node3;
		node3.next = node4;
		
		Node node = head.next;
		while(node != null)
		{
			System.out.println(node.data);
			node = node.next;
		}
		
		reverse(head);
		
		node = head.next;
		while(node != null)
		{
			System.out.println(node.data);
			node = node.next;
		}
	}

}











分享到:
评论

相关推荐

    实验报告2 链表倒置问题.doc

    3. **倒置链表**:实现 `change` 函数来进行链表的倒置。 4. **循环处理**:遍历链表,每次将当前节点与其对应的对称节点进行交换,直到遍历至链表中间。 ##### 3.4 算法复杂性分析 1. **时间复杂度**:对于长度为 ...

    链表倒置算法

    ### 迭代法倒置链表 迭代法主要利用三个指针:`prev`、`current` 和 `next`。初始时,`prev` 为 `None`,`current` 指向链表的第一个节点(假设我们已经获取到了这个节点)。然后,我们进入一个循环,直到 `current...

    倒置——链表(附源代码)

    在“倒置——链表”这个主题中,我们关注的是如何反转一个链表。这是一个常见的编程问题,有助于锻炼对指针操作的理解和链表结构的掌握。通常,链表的反转可以分为三种类型:单链表的头尾反转、单链表的任意两个节点...

    链表的倒置

    链表的倒置是数据结构与算法中一个基础但实用的操作,主要应用于处理线性数据结构,如单链表或双链表等。在给定的C++代码示例中,我们可以通过分析其结构和功能,深入理解链表倒置的具体实现过程。 ### 核心知识点 ...

    lianbiao.rar_链表倒置

    2. 递归法:将链表的倒置问题分解为子问题,即递归地倒置链表的剩余部分,然后将当前节点插入到已倒置的部分之前。 在“链表.c”程序中,可能会包含这些基本操作的实现,通过阅读和理解代码,你可以掌握链表操作的...

    链表的各种操作方法

    下面我们将详细探讨链表的各种操作方法,包括头插法、尾插法、删除节点以及倒置链表。 1. 头插法: 头插法是在链表的头部插入新节点。首先,我们需要创建一个新节点,然后将新节点的指针指向当前链表的头节点,最后...

    C语言链表基本操作.doc

    倒置链表的函数为`reverse(head)`,该函数会将链表中的结点翻转。 链表的删除 链表的删除操作是指删除整个链表。删除链表的函数为`delete_whole(head)`,该函数会删除整个链表。 链表的打印 链表的打印操作是指将...

    数据结构完整的原地倒置代码

    原地倒置链表的目的是改变这些指针的方向,使得原本的第一个节点成为最后一个,最后一个成为第一个,以此类推。 原地倒置的步骤如下: 1. 初始化两个指针:一个`current`指向当前节点,一个`prev`始终为空或指向...

    C语言链表倒置程序,可直接运行

    总之,"C语言链表倒置程序"是一个关于数据结构和算法的经典实例,它展示了如何使用基本的C语言语法和内存管理技巧来处理复杂的数据操作。通过理解和实践这个程序,可以加深对链表和C语言的理解,对于学习数据结构和...

    用链表实现线性表的各种操作(C语言)

    倒置链表需要两个指针,一个当前节点,一个前驱节点。从第二个节点开始,每次将当前节点的指针域指向其前驱节点,然后移动前驱和当前指针,直到遍历完所有节点。 7. **合并链表** 合并两个已排序的链表,需要比较...

    不带头节点的单链表倒置算法

    接下来,我们来探讨倒置链表的算法思路。链表的倒置可以通过迭代或递归的方式实现。这里我们采用迭代的方式,因为这种方法更易于理解和实现。基本步骤如下: 1. 初始化三个指针:`prev`、`curr` 和 `next`,分别...

    VS2010编写C++链表类

    倒置链表通常通过两个指针来实现,一个指向当前节点,另一个指向前一个节点,逐步交换它们的顺序。`clear`方法则负责释放所有节点的内存,防止内存泄漏。 为了更好地理解这些功能,你可以通过VS2010创建一个新的C++...

    链表的操作1

    以下是倒置链表的迭代方法伪代码: ```python def reverse_list(head): prev = None current = head while current: next_temp = current.next current.next = prev prev = current current = next_temp ...

    c++ 实现链表的倒置源代码

    在描述中提到的"C++实现链表的倒置源代码",通常会包含一个或多个C++源文件,这些文件定义了一个链表类或使用结构体来表示链表节点,并提供相应的函数来实现链表的倒置。下面我们将详细探讨如何在C++中实现链表的...

    链表原地倒置

    ### 链表原地倒置 #### 一、链表倒置的实现 链表是一种常见的线性数据结构,其元素通过指针链接在一起。本篇内容主要讲解了链表的两种操作:链表的倒置以及检测链表是否包含环。 ##### 1. 链表倒置算法原理 链表...

    单向链表倒置

    "单向链表倒置"是一个常见的算法问题,它的目标是将链表的前后顺序颠倒过来。例如,原链表为1->2->3->4,倒置后应变为4->3->2->1。这个问题在面试中经常出现,因为它能够考察程序员对基本数据结构和递归或迭代算法的...

    华南农业大学数据结构上机实验大答案

    在数据结构的学习中,常见的数据结构包括数组、链表、栈、队列、树(二叉树、平衡树、堆)、图以及哈希表等。这些数据结构各有特点,适用于不同的场景。 1. **数组**:是最基础的数据结构,元素按线性顺序存储,...

    C++用链表完成学籍管理系统

    该系统旨在管理学生的基本信息,包括学号、姓名和成绩,提供一系列功能如添加学生信息、显示所有学生信息、查找特定学生、更新学生信息、删除学生信息以及倒置链表等操作。 #### 数据结构选择:链表 链表是一种...

    数据分析,链表相关复习

    给定带头结点的单链表 `head`,倒置链表的过程如下: 1. 初始化指针 `p` 指向第一个数据结点。 2. 将原链表置为空表 `head->next = NULL`。 3. 使用循环结构,每次取出一个结点,并将该结点作为新的头结点插入到新...

    单链表倒置操作

    单链表操作,希望能够帮助正在学习数据结构的同学

Global site tag (gtag.js) - Google Analytics