链表反转

原创 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; } }

C++链表的反转

  • 2013年05月16日 23:19
  • 3KB
  • 下载

链表反转 C/C++

  • 2012年04月15日 23:08
  • 48KB
  • 下载

Java单链表反转 详细过程

Java单链表反转 Java实现单链表翻转 使用递归法实现单链表反转,使用遍历反转法:递归反转法是从后往前逆序反转指针域的指向,而遍历反转法是从前往后反转各个结点的指针域的指向。     【尊重原创,...

List-LinkedList 单链表就地反转

  • 2012年05月09日 10:16
  • 41KB
  • 下载

PAT Basic 1025. 反转链表 (25)(C语言实现)

题目 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6...

链表反转程序

  • 2011年11月28日 14:55
  • 1KB
  • 下载

反转链表的一般用法和递归用法

  • 2011年08月24日 22:41
  • 28KB
  • 下载

剑指Offer面试题16(Java版):反转链表

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的。很多的面试官喜欢出链表相关的问题,就是想通过指...

【剑指offer】递归循环两种方式反转链表

本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上测试了非递归版本,AC。 题目描述: 输入一个链表,反转链表后,输出链表的所有元素。 (hint : 请务必使用链表) 输入: 输入可能包含...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:链表反转
举报原因:
原因补充:

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