题目描述
输入一个链表,反转链表后,输出链表的所有元素。
public class ReverseList {
public static ListNode ReverseList(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode cur = head;
//定义最终输出的反转的链表
ListNode reverse = null;
//保存前一个结点
ListNode pPrev = null;
while(cur!=null){
ListNode pNext = cur.next;
if (pNext==null) {
//满足条件时即链表反转完毕
reverse = cur;
}
//将next指针指向前一个对象
cur.next = pPrev;
//将前一个对象赋值cur
pPrev = cur;
//cur往右移动
cur = pNext;
}
return reverse;
}
public static void main(String[] args){
ListNode list = new ListNode(0);
ListNode list1 = new ListNode(1);
ListNode list2 = new ListNode(2);
list.next = list1;
list1.next = list2;
ListNode reverse = ReverseList(list);
while (reverse!=null) {
System.out.println(reverse.val);
reverse = reverse.next;
}
}
}