反转链表
- 题目:输入一个链表,反转链表后,输出新链表的表头。
- 思路:使用两个辅助节点(pre与next),pre最初为null,使用next记录head的下一个节点,head.next指向pre,pre和head后移一步。
- 边界:当head==null是结束循环,返回的为pre
/*
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||head.next==null){
return head;
}
ListNode pre = null;
ListNode next = null;
while(head!=null){
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
}