反转链表
知识点:链表 双指针
描述
输入一个长度为n链表,反转链表后,输出新链表的表头。
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head==null || head.next==null){ //判断链表为空或长度为1的情况
return head;
}
ListNode pre = null;
ListNode cur = head;
ListNode tmp = null; //记录当前节点的下个节点
while(cur!=null){
tmp = cur.next; //记录当前节点的下一个节点
cur.next = pre; //让当前节点的next指向前一个节点
pre = cur; //pre往前移动一位
cur = tmp; //当前节点往后移动一位
}
return pre;
}
}
输入:
{1,2,3}
返回值:
{3,2,1}