题目描述:在 O(1) 时间内删除链表节点 i c } m l p a o s r s f } t u F n F o c o r v i } i } } } r u 1 d a f f e e n 3 e r l e t d S l p p s l u a o e p r D p p e p s l w } p p r t l t = e e / D D / e / e h ? n i u e = = t l 删 e e i 删 = 删 t i . = o t N u e 除 l l f 除 { 除 l n p n i o h n r t 的 e e 的 n 的 s e p e s o d e i n e 不 t t p 是 i 是 x n e a l d 是 e e 头 l 尾 = p = t ( d p ? 尾 d d = 结 节 ? { _ . 节 ? ? = 点 点 p . p = n 点 . . = , n ? h e v n 只 e . n e p x a e p 有 x n i a D t l x D 一 t e l d e t e 个 x : l ! = l 节 ! t e = = e 点 = L t ( t = i e n p p e s d i D D d p t l e e D N = l l { e o = { e e l d t t e e n e e t ? i d d e , l ? ? d _ . . { n n { p e e D x x e t t l ? ? e . . t v n e a e d l x : ) t ! L i s t N o d e ? ) L i s t N o d e ? { 算法思想:① 如果该节点不是尾节点,那么可以直接将下一个节点的值赋给该节点,然后令该节点指向下下个节点,再删除下一个节点,时间复杂度为 O(1)。 ② 否则,就需要先遍历链表,找到节点的前一个节点,然后让前一个节点指向 null,时间复杂度为 O(N)。 github地址:https://github.com/cubegao/LeetCode