Skip to content

在链表算法里,当操作可能会对链表的头节点产生影响时,使用虚拟头节点往往能简化代码逻辑,避免对头节点进行特殊处理。

  1. 删除链表节点(头节点可能被删除) 🤔删除一定需要虚拟头节点么?
    • 不一定,只有要删除头节点的时候才会,有的删除不会删除头节点
    • 比如删除已排序链表中的重复节点(保留一个),就不会删除头节点(因为即使头节点开始重复,因为要保留一个,所以头节点还是会保留,不会被删除)
    • 此时就不需要虚拟头节点
    • 与此对比的是,如果有重复节点,就都不要了,那么就会删除头节点,就需要虚拟头节点
  2. 插入节点到链表头部(头节点变化)
  3. 合并多个有序链表 (头节点可能来自任意一个输入链表)