貌似各种笔试面试里这个挺爱考的,不清楚过程多画画图就明白了。
先写的单的,哪天把双链表逆置写一下。
public class LinkedListReverse {
/**
* 单链表逆置
*
* @author aaron-han
*
*/
public static void main(String[] args) {
Node a = new Node("NodeA");
Node b = new Node("NodeB");
Node c = new Node("NodeC");
Node d = new Node("NodeD");
Node e = new Node("NodeE");
a.next = b;
b.next = c;
c.next = d;
d.next = e;
System.out.println("original:");
printNodes(a);
Node head = reverse(a);
System.out.println("after reverse:");
printNodes(head);
}
public static Node reverse(Node node) {
if (node == null) {
return node;
}
Node head = node;
Node pre = null;
Node next = head.next;
while (next != null) {
head.next = pre;
pre = head;
head = next;
next = next.next;
}
head.next = pre;
return head;
}
public static void printNodes(Node node) {
for (; node != null; node = node.next) {
System.out.println(node.name);
}
}
static class Node {
String name;
Node next;
Node(String name) {
this.name = name;
}
}
}
分享到:
相关推荐
写一个算法将一单链表逆置。要求操作在原链表上进行。
详细描述了单链表逆转的思路及过程,并附源码
单链表逆置部分代码,应该有用,第一次上传文件
数据结构和算法应用单链表逆置.cpp
对以单链表为存储结构的表实现就地逆置,即在原有空间上实现逆置,不开辟新空间
用头插入法来做,直到输入0时,按enter键结束。
单链表逆置是数据结构学习和实践中常见的经典问题之一,它涉及到对单链表节点之间的链接关系进行重新排列,使得原本链表的末尾节点成为新的头部节点,而原来的头部节点移动到最后。解决单链表逆置问题的资源主要包括...
数据结构中单链表就地逆置算法,不是程序设计代码
单链表是数据结构中最简单的一种数据结构,虽然在结构上最简单,但是使用好也是比较困难的,而在各大公司的面试中也是有单链表的各种算法的变种。下面我就列举出几种经常出现的几种题目,并通过简单分析,使用java...
单链表的插入算法,单链表的逆置算法,单链表的删除算法
单链表的合并(递归-非递归)以及将单链表逆序
menu(); void MainMenu(); //主菜单,进入主操作界面 void menu1(); //创建单链表 void menu2(); //读取指定位置元素 void menu3(); //在指定位置前插入新元素 void menu4();... //将单链表逆置
试写一算法,实现单链表的就地逆置(要求在原链表上进行)。 void converse(NODEPTR L) { NODEPTR p,q; P=L ->next; q=p ->next; L ->next=NULL; while(p) /*对于当前结点p,用头插法将结点p插入到头结点...
无头结点的单链表的c算法的实现,里面有验证程序可以参考,在调试中通过。
实现了链表的基本操作,包括链表的建立、查找、插入、删除、显示、逆序等基本操作。
数据结构与算法 c++实现 //删除顺序递增表中的重复元素 //对单链表实现就地逆置 //删除递增单链表中的重复元素 适合大二初学数据结构与算法 程序有详细备注 顺序表 单链表
通过复习题 对单链表 在进行一下熟悉,巩固。先看看有那些题: 1.设计将单链表L2连接在单链表L1后面的算法; 2.设计无头结点的单链表的删除算法;...5.设计无头结点的单链表的逆置算法; 6.设计单链表的逆置算法;
数据结构单链表、双链表的逆置算法.doc
C++单循环链表逆置的算法 ,非常的不错的算法,还支持读文件功能。
设计算法,将给定二叉树的叶子结点连成一个带头结点的单链表,并要求叶子结点按照从左到右的顺序插入,而排列顺序为从右到左(逆置)的单链表。