单链表逆置的完整实现 java版

来源:互联网 发布:蜗杆数控车床编程事例 编辑:程序博客网 时间:2024/04/29 18:40
简单思路就是把各个节点的next指针 从原来的指向下一个元素 变为指向 前一个元素。并做循环处理

public class LinkReverse {
public static void main(String[] args) {
// 节点类
class Node {
String name;
String value;
Node next;

public Node(String value, String name) {
this.name = name;
this.value = value;
}
}

// 制作一个单链表
Node a1 = new Node("a", "1");
Node a2 = new Node("b", "2");
Node a3 = new Node("c", "3");
Node a4 = new Node("d", "4 ");
Node a5 = new Node("e", "5 ");
a1.next = a2;
a2.next = a3;
a3.next = a4;
a4.next = a5;

Node head = a1;
Node pre = null;
Node next = head.next;
// 将指向后面的next 变为指向前面 即可 原來第一個的頭元素變為尾元素
while (next != null) {
head.next = pre;
pre = head;
head = next;
next = next.next;
}
head.next = pre;

// 打印逆置后的链表
Node p;
p = head;
for (; p != null; p = p.next) {
System.out.println(p.value + " " + p.name);
}
}

}