public class ReverseLinkList24 {
static class Node {
int val;
Node next;
public Node(int val){
this.val = val;
}
@Override
public String toString() {
return "Node{" +
"val=" + val +
", next=" + next +
'}';
}
}
public static void main(String[] args) {
Node root = new Node(0);
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
Node node5 = new Node(5);
root.next = node1;
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
System.out.println(reverseList(root));
}
private static Node reverseList(Node root) {
Node newHead = new Node(-1);
Node p = root;
while (p != null) {
Node q = p.next;
p.next = newHead.next;
newHead.next = p;
p = q;
}
return newHead.next;
}
}
解释:新增一个头节点,返回时去掉他即可