例如有一单向链表
54->30->37->61->1->60->25->76->60->95
原链表头节点54,尾节点:95
实现效果:
95->60->76->25->60->1->61->37->30->54
新链表头节点95,尾节点54
实现原理:
从头节点开始遍历整个链表,对每个节点指向的前后节点引用进行交换,最后设置头节点和尾节点
Java类:
Node.java
节点对象,包含节点本身属性及方法
NodeList.java
链表操作类,记录链表头节点和尾节点,操作链表例如链表追加,链表反转等方法
TestNode.java
测试类
实现代码:
package demo;
/**
* 节点实体类
* @author sunlh
*
*/
public class Node {
private Node pre;// 上一个节点
private Node next;// 下一个节点
private int data;// 数据
public Node(int data) {
this.data = data;
}
public void append(Node node) {
if (this.next == null) {
this.next = node;
node.pre = this;
} else {
this.next.append(node);
}
}
public Node getPre() {
return pre;
}
public void setPre(Node pre) {
this.pre = pre;
}
public Node getNext() {
return next;
}
public void setNext(Node ne