依旧是1->2->3->4
- 准备两个空结点 pre用来保存先前结点、next用来做临时变量
- 在头结点node遍历的时候此时为1结点
- next = 1结点.next(2结点)
- 1结点.next=pre(null)
- pre = 1结点
- node = 2结点
- 进行下一次循环node=2结点
- next = 2结点.next(3结点)
- 2结点.next=pre(1结点)=>即完成2->1
- pre = 2结点
- node = 3结点
public class reverLinked {
public static class Node {
public int value;
public Node next;
public Node(int data) {
this.value = data;
}
}
public static Node reverLink(Node node){
Node next=node;
Node pre=null;
while(node!=null) {
next=node.next;
node.next=pre;
pre=node;
node=next;
}
return pre;
}
public static void main(String[] args) {
Node node1=new Node(1);
Node node2=new Node(2);
Node node3=new Node(3);
node1.next=node2;
node2.next=node3;
Node node=node1;
Node node4=null;
//Node reverse=null;
node4=reverLink(node);
while(node4!=null) {
System.out.println(node4.value);
node4=node4.next;
}
}
}