`
eriol
  • 浏览: 407265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

链表逆序

阅读更多

链表逆序,即将原先的链表 a->b->c->d, 变为 d->c->b->a。需要使用三个指针来进行操作。

 

public int* reverse(int* head) {
	int* front = head;
	int* back = null;
	int* temp;
	
	while (front != null) {
		temp = font - > next;
		font -> next = back;
		back = font;
		font = temp;
	}
	
	return back;
}
 

 

如果要求链表两两逆序,例如 1->2->3->4 变成 2->1->4->3。该怎么呢?需要分情况处理链表长度为单数和偶数的情况。

 

public ListNode reverse(ListNode head) {
	if (head == null)
		return null;
	if (head.next == null)
		return head;

	ListNode back = head;
	ListNode front = head.next;
	ListNode temp;
	head = front;
	while (true) {
		temp = front.next;
		front.next = back;
		back.next = temp;
		if (temp == null || (temp != null && temp.next == null))
			break;
		else {
			front = temp.next;
			back.next = front;
			back = temp;
		}
	}
	return head;
}
 
分享到:
评论

相关推荐

    链表逆序输出

    本示例中的“链表逆序输出”是一个典型的Java编程问题,旨在帮助初学者理解链表的操作以及如何通过代码实现逆序输出。下面我们将深入探讨这个主题。 链表与数组不同,它不连续存储数据,而是通过节点之间的引用关系...

    C++链表逆序经典实现

    IT公司最常见笔试题。2010-06-07编写。欢迎讨论。 QQ:114723704

    renzg#tech-document#1.1 如何实现一个高效的单向链表逆序输出?1

    问题:如何实现一个高效的单向链表逆序输出?出题人:阿里巴巴出题专家:昀龙/阿里云弹性人工智能负责人参考答案:下面是其中一种写法,也可以有不同的写法,比如递归等。

    笔试题之链表逆序A->B->C to C->B>A

    本题目的核心是“链表逆序”,这是一个常见的编程面试和笔试问题,主要考察程序员对链表操作的理解和实现能力。接下来,我们将详细讨论链表逆序的概念、方法以及如何使用C++进行实现。 链表逆序,顾名思义,就是将...

    shujujiegou.rar_线性链表_链表逆序

    本资料"shujujiegou.rar_线性链表_链表逆序"聚焦于线性链表的查找、删除、逆序和顺序操作,这些都是数据结构课程设计中常见的任务。 1. **线性链表的结构** 线性链表由一系列节点组成,每个节点包含两部分:数据域...

    c++链表逆序的几种方法

    C++链表逆序的几种方法 C++链表是一种常用的数据结构,它可以用来存储和操作大量的数据。链表逆序是指将链表中的元素顺序颠倒,这样可以实现一些特殊的操作,例如逆序输出链表中的元素。下面将介绍C++链表逆序的几...

    链表逆序实验C语言源代码

    ### 链表逆序实验C语言源代码分析 #### 一、概述 本文将对一个使用纯C语言实现的链表逆序程序进行详细解析。该程序包含链表的创建、打印、逆序以及销毁等功能,非常适合C语言初学者理解和学习。 #### 二、程序...

    链表逆序算法,最简单的算法

    链表逆序算法,最简单的算法,有些算法可以不必自己写出,会用就可以,比如这个算法,很简单,很有效,代码整洁清晰

    如何实现一个高效的单向链表逆序输出.docx

    单向链表逆序输出在实际编程中有很多应用,例如在数据结构操作、算法问题、以及某些特定业务逻辑中。在实现时,需要注意以下几点: - 避免空指针异常:在操作链表之前,要先检查头节点是否为空。 - 节点的指针操作...

    1.1.1 如何实现一个高效的单向链表逆序输出?.md

    1.1.1 如何实现一个高效的单向链表逆序输出?

    C语言数据结构实现链表逆序并输出

    C语言数据结构实现链表逆序并输出 将一个链表逆序并输出。我用了两种方法来实现,第一种是借助了一个新的空链表;第二种是在原来链表的基础上直接实现逆序。 实例代码:  头文件:  #include #include #...

    OliviaGan#interview-reference#1.1.1 如何实现一个高效的单向链表逆序输出?1

    问题:如何实现一个高效的单向链表逆序输出?出题人:阿里巴巴出题专家:昀龙/阿里云弹性人工智能负责人参考答案:下面是其中一种写法,也可以有不同的写法,比如递归等。

    主要讲述以http://blog.csdn.net/LCL_data/archive/2009/12/09/4974499.aspx中的链表逆序为模板来讲述指针的使用

    主要讲述以http://blog.csdn.net/LCL_data/archive/2009/12/09/4974499.aspx中的链表逆序为模板来讲述指针的使用

    C语言解字符串逆序和单向链表逆序问题的代码示例

    本文将深入探讨如何使用C语言解决字符串逆序和单向链表逆序的问题,这些都是编程面试和研究生考试中的常见题型。 ### 字符串逆序 字符串逆序是指将一个给定的字符串的字符顺序反转。在C语言中,我们可以使用递归...

    C语言链表逆序技巧

    简洁的做法是  遍历链表,  元素进栈,  遍历的同时销毁原来的链表。  元素出栈,  建立新链表。  高效的是,

    C++练习-逆序链表的输入输出

    数据结构课程练习---------------------------------------逆序链表的输入输出

    C语言链表操作(新增单向链表的逆序建立)

    C语言链表的各种操作,链表是各种发杂数据结构的基础,掌握链表很重要。。。

    单链表逆序

    单链表逆序是数据结构领域中的一个常见操作,它涉及到对链表节点顺序的反转。在本场景中,我们将详细探讨如何实现这个过程,包括单链表的基本概念、逆序算法的步骤以及如何在实际编程中应用这些概念。 首先,我们...

Global site tag (gtag.js) - Google Analytics