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

单向链表反转

    博客分类:
  • java
阅读更多
昨天遇到一个问题:如何遍历一次就反转一个单向链表。想了想也没什么好方法,用了很笨的一招,嘿嘿!将链表的各个节点得到并存在一个list中,然后倒序重组一下。感觉这个方法不是很好,不知道大家有什么好的方法,希望我这个破砖头能引出几块好玉来!
分享到:
评论
8 楼 ray_linn 2009-02-16  
....放list里? 那还学个屁算法....

7 楼 yangyi 2009-02-16  
dandy 写道
yangyi 写道

需要三个指针吧


太抽象,具体点.

Pointer p = head,q,k;
p -> next = q;
q -> next = k;
do{
q->next = p;
p = q;
if(k is end){
   k->next = q;
}else{
  q = k;
  k = k->next;
}
}while(k is not end)
6 楼 dandy 2009-02-10  
抛出异常的爱 写道

a-> b -> c-> da-> null b->c->d->null        | x->aa->null  b->x  c->d->null     | y->ba->null  b->x  c ->y  d->null | z->ca->null  b->x  c->y   d->z

这样的话链表岂不是变成了:d→z→c→y→b→x→a ?
5 楼 抛出异常的爱 2009-02-09  
a-> b -> c-> d

a-> null b->c->d->null        | x->a
a->null  b->x  c->d->null     | y->b
a->null  b->x  c ->y  d->null | z->c
a->null  b->x  c->y   d->z
4 楼 dandy 2009-02-09  
yangyi 写道

需要三个指针吧


太抽象,具体点.
3 楼 dandy 2009-02-09  
myreligion 写道

反转就是一个个取出,然后放到Stack里面吧?呵呵。

可能用反转不太确切,比如链表是a→b→c→d,现在变成d→c→b→a,链表每个节点的前一个节点变为他的下一个节点。
2 楼 myreligion 2009-02-09  
反转就是一个个取出,然后放到Stack里面吧?呵呵。
1 楼 yangyi 2009-02-09  
需要三个指针吧

相关推荐

    Java实现单向链表反转

    Java实现单向链表反转 Java实现单向链表反转是指将单向链表的顺序颠倒,例如原链表为A->B->C->D->E->F,反转后变为F->E->D->C->B->A。这种操作在实际开发中非常有用,例如在数据处理、数据分析等领域。 单向链表...

    逆转单向链表(有7种方法)

    单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的引用。在编程中,经常需要对链表进行各种操作,其中之一就是逆转链表。逆转链表的操作可以改变链表中节点的顺序,使得原本的...

    单向链表实验报告(数据结构)

    在本篇数据结构实验报告中,我们关注的核心是单向链表这一数据结构。单向链表是一种线性数据结构,每个节点包含一个数据元素和一个指向下一个节点的指针。实验使用VC++ 6.0作为编程工具,旨在通过实践来深入理解和...

    单向链表类模板_单向链表类模板_fastchq_

    单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。在C++编程中,为了实现通用性,我们通常会使用模板类来创建单向链表,以便它可以处理不同类型的元素。标题"单向链表类...

    单向链表源代码

    单向链表是一种基本的数据结构,它在计算机科学中被广泛应用,特别是在算法和数据结构的实现中。在Java编程中,单向链表通常通过定义一个节点类来实现,每个节点包含数据和指向下一个节点的引用。下面我们将深入探讨...

    [面试/笔试系列5]链表反转

    #### 一、单向链表反转原理及实现 **1.1 基本概念** 单向链表是一种线性数据结构,每个元素包含两个部分:数据域和指向下一个元素的指针域。单向链表的特点是只能从前向后遍历。 **1.2 为什么要反转链表** 链表...

    java链表反转及排序

    在“java链表反转及排序”这个主题中,我们将探讨如何在Java中实现单向链表的反转和排序。首先,我们创建一个链表节点类,包含数据和指向下一个节点的引用: ```java public class ListNode { int val; // 节点值 ...

    C语言实现的一个单向链表逆转

    单向链表是一种基本的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表逆转是计算机科学中常见的操作,它将链表中的元素顺序颠倒,使得原链表的最后一个元素成为新链表的第一个元素,而...

    C#实现单向链表C# .net 链表 单向链表

    ### C#实现单向链表 #### 一、引言 单向链表是一种常见的数据结构,在计算机科学中被广泛应用于解决各种问题。它由一系列节点组成,每个节点包含一个数据元素以及指向下一个节点的引用。本文将详细介绍如何在C#中...

    1273545169#Course_notes#反转单向或双向链表1

    题目描述分别实现反转单向链表和反转双向链表的函数。【要求】 如果链表长度为N, 时间复杂度要求为O(N), 额外空间复杂度要求为O(1)解题思路反转单向链表反转

    单向链表实现

    单向链表是一种基本的数据结构,它在计算机科学和编程中有着广泛的应用。与数组不同,链表不连续存储元素,而是通过节点之间的指针连接。每个节点包含两部分:数据域,用于存储数据;指针域,指向下一个节点的位置。...

    单向链表的功能

    **链表反转** 反转单向链表是一项常见的操作,可以通过迭代或递归方式实现。迭代方法涉及三个指针:当前节点、前一个节点和临时节点,递归方法则利用函数调用自身来实现。 单向链表的功能远不止这些,还包括合并两...

    lianbiao.rar_单向链表

    除了基本的插入和删除,单向链表还支持其他高级操作,如查找、反转和合并等。查找操作需要从头节点开始遍历链表,直到找到目标节点或遍历完整个链表。链表的反转则需要改变每个节点的指针方向,使得原后续节点变为...

    C++链表的反转

    链表分为单向链表(本例中使用)和双向链表。 #### 二、链表的创建与初始化 在C++中,链表可以通过定义结构体来表示。结构体包含一个整型数据成员`data`和一个指向同类结构体的指针成员`next`。 ```cpp typedef ...

    c++单向链表

    在C++编程中,单向链表是一种基本的数据结构,用于组织数据,它与数组不同,因为链表的元素在内存中不一定连续存放。每个链表节点包含两部分:数据域,存储实际的数据;指针域,存储指向下一个节点的地址。在C++中...

    单向链表(一) 结构体、创建链表、遍历链表

    单向链表是一种基本的数据结构,它在计算机科学和编程中有着广泛的应用。与数组不同,链表中的元素不是在内存中连续存储的,而是通过指针连接起来。本篇文章将深入探讨单向链表的基本概念,包括其结构体定义、如何...

    一次遍历查找单向链表的中间结点

    单向链表是链表的一种类型,其中每个节点仅有一个指向下一个节点的指针,而没有指向前一个节点的指针。 **中间结点问题** 是链表操作中的一个重要话题,特别是在面试和算法设计中经常出现。给定一个单向链表,找到...

    C语言之单向链表详解及实例代码

    1,单向链简洁。...根据示例代码中的例子,完成单向链表(single linked list)中的以字符串为数据的链表的插入、删除以及查找,并支持单向链表的反转; 3,代码实现。 #include #include <math.h>

    JAVA双向链表反转实现

    与单向链表不同,双向链表中的每个节点都有两个指针,一个指向前一个节点,另一个指向后一个节点。这使得在链表中的导航更加灵活,对于某些特定的操作,比如反转链表,提供了更高效的解决方案。 双向链表的节点通常...

Global site tag (gtag.js) - Google Analytics