反转一个单链表
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
public static void main(String[] args) {
LinkedNode linkedNode5 = new LinkedNode(1);
LinkedNode linkedNode4 = new LinkedNode(2,linkedNode5);
LinkedNode linkedNode3 = new LinkedNode(3,linkedNode4);
LinkedNode linkedNode =listReserve(linkedNode3);
while (linkedNode !=null){
System.out.println(linkedNode.val);
linkedNode = linkedNode.next;
}
}
public static LinkedNode listReserve(LinkedNode linkedNode){
if(linkedNode == null){
return null;
}
LinkedNode reserveNode = null;
while (linkedNode !=null){
//逆序:新结点的下一结点指向reserveNode,再将新结点赋值给reserveNode
LinkedNode node = new LinkedNode(linkedNode.val);
node.next = reserveNode;
reserveNode = node;
linkedNode = linkedNode.next;
}
return reserveNode;
}
private static class LinkedNode {
private int val;
private LinkedNode next;
public LinkedNode(int val) {
this.val = val;
}
public LinkedNode(int val, LinkedNode next) {
this.val = val;
this.next = next;
}
}