package test;
public class Test3 {
static class Node{
int value = -1;
Node next = null;
public Node(int i){
value = i;
}
@Override
public String toString() {
return value+"";
}
}
static void reverveChain(Node head){
Node rhead = new Node(-1);//翻转链表的头结点
Node pnode = head.next;//原链表的第一个有效节点
while(pnode!=null){
Node n = pnode;//保存当前节点
pnode = pnode.next;//把当前节点标记为下一个节点
head.next = pnode;//把头结点指向该节点
n.next = rhead.next;//把当前节点的下一个节点标记为翻转链表的第一个有效节点
rhead.next = n;//把当前节点标记为翻转链表头结点的下一个节点
}
System.out.println(rhead.next);
}
public static void main(String[] args) {
Node head = new Node(-1);
Node n1 = new Node(1);
head.next = n1;
Node n2 = new Node(2);
n1.next = n2;
Node n3 = new Node(3);
n2.next = n3;
Node n4 = new Node(4);
n3.next = n4;
reverveChain(head);
}
}
翻转链表
最新推荐文章于 2024-07-18 23:39:51 发布