链表常用技巧
1. 使用 dummy node:dummy node 就是在鏈表的 head 前加一個節(jié)點(diǎn)指向 head,即 dummy->head,可以 理解成一個虛擬節(jié)點(diǎn)。有了 dummy node 就使得操作 head 節(jié)點(diǎn)與操作其他節(jié)點(diǎn)沒有區(qū)別。特別適合用在鏈表 的 head 發(fā)生變化的情況下,譬如刪除或者被修改等。dummy = ListNode(0) dummy.next = head2. 雙指針法:對于尋找鏈表的某個特定位置,或者判斷 是否有環(huán)等問題時,可以用兩個指針變量 fast 和 slow, 兩個指針以不同的策略移動,直到兩個指針的值相等(或 其他特殊條件)為止。slow = head fast = head3. 交換節(jié)點(diǎn)的處理:如果需要交換兩個節(jié)點(diǎn)的位置,對于這兩個前驅(qū)節(jié)點(diǎn),他們的next指針會受到影響,這兩個節(jié)點(diǎn)本身也會受到影響,可以用以下步驟: 先交換兩個前驅(qū)節(jié)點(diǎn)的next指針的值 再交換這兩個節(jié)點(diǎn)的 next 指針的值
總結(jié)
- 上一篇: 21. Leetcode 203. 移除
- 下一篇: 22. Leetcode 237. 删除