You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<h3>🔗 206. 反转链表</h3><p><b>难度:</b> Easy | <b>标签:</b> 必背</p><blockquote style="background:#f0f0f0;padding:10px;border-left:4px solid #007bff;margin:10px 0;">给你单链表的头节点 `head` ,请你反转链表,并返回反转后的链表。</blockquote><p><a href="https://leetcode-cn.com/problems/reverse-linked-list/">🔗 LeetCode 链接</a></p> <pre style="background:#1e1e1e;color:#d4d4d4;padding:10px;border-radius:5px;overflow-x:auto;font-family:monospace;"><code>var reverseList = function(head) {<br> let prev = null;<br> let cur = head;<br> while (cur !== null) {<br> let next = cur.next;<br> cur.next = prev;<br> prev = cur;<br> cur = next;<br> }<br> return prev;<br>};</code></pre>
<h3>🔗 92. 反转链表 II</h3><p><b>难度:</b> Medium | <b>标签:</b> 区间反转</p><blockquote style="background:#f0f0f0;padding:10px;border-left:4px solid #007bff;margin:10px 0;">给你单链表的头节点 `head` 和两个整数 `left` 和 `right` ,请你反转从位置 `left` 到位置 `right` 的链表节点,返回反转后的链表。</blockquote><p><a href="https://leetcode-cn.com/problems/reverse-linked-list-ii/">🔗 LeetCode 链接</a></p> <pre style="background:#1e1e1e;color:#d4d4d4;padding:10px;border-radius:5px;overflow-x:auto;font-family:monospace;"><code>var reverseBetween = function(head, m, n) {<br> let dummy = new ListNode(-1);<br> dummy.next = head;<br> let pre = dummy;<br> for (let i = 1; i < m; i++) {<br> pre = pre.next;<br> }<br> let cur = pre.next;<br> for (let i = 0; i < n - m; i++) {<br> let next = cur.next;<br> cur.next = next.next;<br> next.next = pre.next;<br> pre.next = next;<br> }<br> return dummy.next;<br>};</code></pre>
<h3>🔗 25. K 个一组翻转链表</h3><p><b>难度:</b> Hard | <b>标签:</b> 面试常客</p><blockquote style="background:#f0f0f0;padding:10px;border-left:4px solid #007bff;margin:10px 0;">给你一个链表,每 `k` 个节点一组进行翻转,请你返回翻转后的链表。</blockquote><p><a href="https://leetcode-cn.com/problems/reverse-nodes-in-k-group/">🔗 LeetCode 链接</a></p> <pre style="background:#1e1e1e;color:#d4d4d4;padding:10px;border-radius:5px;overflow-x:auto;font-family:monospace;"><code>var reverseKGroup = function(head, k) {<br> let cur = head;<br> let count = 0;<br> // 探测是否够 k 个<br> while (cur !== null && count !== k) {<br> cur = cur.next;<br> count++;<br> }<br> if (count === k) {<br> // 反转这 k 个节点<br> let prev = null;<br> let node = head;<br> for (let i = 0; i < k; i++) {<br> let next = node.next;<br> node.next = prev;<br> prev = node;<br> node = next;<br> }<br> // 递归连接<br> head.next = reverseKGroup(cur, k);<br> return prev;<br> }<br> return head;<br>};</code></pre>