一、题目描述
输入一个链表,反转链表后,输出链表的所有元素。
二、解题思路
用三个指针来操作。
三、Java代码实现
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null) return null;
ListNode p1 = head;
if(p1.next == null)
return p1;
ListNode p2= p1.next;
p1.next = null;//这一步不能忘!
if(p2.next == null){
p2.next = p1;
return p2;
}
ListNode p3 = p2.next;
p2.next = p1;
while(p3.next != null){
p1 = p2;
p2 = p3;
p3 = p3.next;
p2.next = p1;
}
p3.next = p2;
return p3;
}
}