链表反转

原创 2007年09月20日 17:50:00
class list{ node head; int length; } class node{ String info; node next; } 一 先看用迭代(iterative)方式实现代码(JAVA): public void list_reverse() { node pos1, pos2, bufnode; pos1 = head; pos2 = null; while (pos1 != null) { bufnode = pos1; pos1 = pos1.next; bufnode.next = pos2; pos2 = bufnode; } head = pos2; //The final list's head is pos2. } 二 接下来是递归(recursion)代码,比较舒服。: public void list_reverse() { head = node_reverse(head); } private node node_reverse(node N) { if(N == null) { return null; } else{ node head = N; node tail = N.next; head.next = null; return node_concat(node_reverse(tail),head); } } private node node_concat(node N1,node N2) { if(N1 == null) { return N2; } else { N1.next = node_concat(N1.next,N2); return N1; } }

数据结构之Java单链表反转

本文为数据结构基础,研究得不是很深。用Java实现单链表的反转,虽然本文研究得不是很深,但是因为是数据结构,所以必须是在对Java内存比较清楚的情况下才能真正的搞懂吃透,如果对Java内存不够清楚,那...
  • qq_24692041
  • qq_24692041
  • 2017年03月16日 15:44
  • 1442

递归和非递归实现链表反转

链表反转是面试笔试常考题目,直接贴代码。 反转函数如下://思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面 void ReverseList(ListNode * ...
  • yunzhongguwu005
  • yunzhongguwu005
  • 2013年08月26日 16:43
  • 12761

C++递归与非递归实现链表的反转

#include"list.h" using namespace std; //非递归实现链表的反转,链表头结点要放元素 listnode* reverselist(listnode* head...
  • wordwarwordwar
  • wordwarwordwar
  • 2014年09月15日 14:38
  • 695

双向链表(3) - 反转双向链表

实现双向链表的反转。参考下面的例图: (a) 原始双向链表 (b) 已经反转的双向链表 下面是一个用于反转双向链表的简单方法。所需要做的事情就是交换每个节点的前向指针和后向指针,然后调整链表的头指针...
  • shltsh
  • shltsh
  • 2015年06月14日 00:57
  • 1609

单链表操作之反转单链表

***单链表操作之反转单链表*** //反转单链表,只能遍历一遍链表 // 定义的结点结构体和头指针结构体: typedef int DataType; t...
  • bitboss
  • bitboss
  • 2016年06月08日 09:46
  • 1714

面试题目之单链表的反转

struct node { int data; struct node *next; }; typedef struct node ListNode; typedef ListNode...
  • u014744118
  • u014744118
  • 2016年02月22日 15:53
  • 767

链表反转C实现(递归与循环)

1 //逆转链表http://blog.163.com/lichunliang1988116@126/blog/static/26599443201282083655446/ 2 #includ...
  • a9ligoushi
  • a9ligoushi
  • 2013年10月20日 21:30
  • 439

java不用api实现单链表反转(二)

这篇博客主要讲述反转链表相关思路。两种方法:时间复杂度均为O(n),空间复杂度均为O(1)...
  • u010111016
  • u010111016
  • 2016年02月27日 19:11
  • 660

单链表反转(递归和非递归)

单链表反转有递归和非递归两种算法。 下面定义节点 typedef struct ListNode{ int value; ListNode* next; }ListNode; 在递归算法中的做法是...
  • KangRoger
  • KangRoger
  • 2014年03月02日 10:53
  • 20046

Java单链表反转 详细过程

Java单链表反转 Java实现单链表翻转 使用递归法实现单链表反转,使用遍历反转法:递归反转法是从后往前逆序反转指针域的指向,而遍历反转法是从前往后反转各个结点的指针域的指向。     【尊重原创,...
  • guyuealian
  • guyuealian
  • 2016年04月11日 10:36
  • 30573
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:链表反转
举报原因:
原因补充:

(最多只允许输入30个字)