双向链表类
public class DoubleNode {
public int value;
public DoubleNode next;
public DoubleNode last;
public DoubleNode(int data){
value = data;
}
}
反转方法
public static DoubleNode revertDoubleList(DoubleNode head){
DoubleNode pre = null;
DoubleNode next = null;
while (head != null){
next = head.next;
head.next = pre;
head.last = next;
pre = head;
head = next;
}
return pre;
}
测试方法
public static void main(String[] args) {
DoubleNode node = new DoubleNode(1);
node.next = new DoubleNode(2);
node.next.next = new DoubleNode(3);
node.next.next.last = node.next;
node.next.last = node;
node = revertDoubleList(node);
while (node != null){
System.out.print(node.value +" ");
if (node.last != null){
System.out.print(" node.last:"+node.last.value +" ");
}
System.out.println();
node = node.next;
}
}
打印结果
3
2 node.last:3
1 node.last:2