递归实现
private static Node reverseByRecur(Node current) {
if (current == null || current.nextNode == null) return current;
Node nextNode = current.nextNode;
current.nextNode = null;
Node reverseRest = reverseByRecur(nextNode);
nextNode.nextNode = current;
return reverseRest;
}
遍历
private static Node reverseHead(Node head) {
if (head == null) {
return head;
}
Node pre = head;
Node cur = head.nextNode;
Node next = null;
while(cur != null){
next = cur.nextNode;
cur.nextNode = pre;
pre = cur;
cur = next;
}
head.nextNode = null;
head = pre;
return head;
}