Reverse Linked List
Description
Reverse a linked list.
Example
For linked list 1->2->3, the reversed linked list is 3->2->1
Challenge
Reverse it in-place and in one-pass
实现思路
- 注意边界条件head和head.next。
- 定义cur = head.next,注意把head.next 置null.
- 遍历时根据cur是否为空,故最后cur为空,返回上一个节点prev
- 翻转时,先备份当前非空节点的下一个,然后将当前节点的next指向前一个节点
- prev,cur节点前进1步。
public ListNode reverse(ListNode head) {
if(head == null || head.next == null){
return head;
}
ListNode prev = head,cur = head.next,next;
head.next = null;
while(cur != null){
next = cur.next;
cur.next = prev;
prev = cur;
cur = next;
}
return prev;
}