【LeetCode】206. 反转链表

📅 发布时间:2026/7/11 14:56:37 👁️ 浏览次数:
【LeetCode】206. 反转链表
题目给你单链表的头节点head请你反转链表并返回反转后的链表。https://leetcode.cn/problems/reverse-linked-list/description/思路头插法原地反转方法空间O(1)code//头插法classSolution{publicListNodereverseList(ListNodehead){if(headnull)returnnull;ListNodecurhead;ListNodedummynewListNode(0,null);//反转链表的dummyListNodeoldNodenull;while(cur!null){// 创建新节点值为cur.valnext指向之前创建的节点ListNodenewNodenewListNode(cur.val,oldNode);// 让虚拟头节点指向最新创建的节点dummy.nextnewNode;// 更新oldNode为当前新节点oldNodenewNode;// 移动原链表指针curcur.next;}returndummy.next;}}//原地反转publicListNodereverseList(ListNodehead){ListNodeprevnull;ListNodecurhead;while(cur!null){ListNodenextcur.next;// 保存下一个节点防止链表断裂cur.nextprev;// 反转当前节点指向前一个节点prevcur;// prev移动到当前节点curnext;// cur移动到下一个节点}returnprev;}