题目描述
输入一个链表,反转链表后,输出新链表的表头。
思路:
null 1 -> 2 -> 3 ->4 ->5 ->null
| | | | |
pre cur next | |
pre cur | |
pre cur
结果:5 -> 4 -> 3 -> 2 -> 1
next = cur.next; //防止链表断裂
cur.next = pre;
pre = cur; //依次向后循环
cur = next;
当cur=null时,结束循环。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null){return null;}
ListNode pre = null;
ListNode cur = head;
while(cur != null){
ListNode next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
return pre;
}
}