Skip to content

Commit 1e785ce

Browse files
committed
Update Remove Nth From End, read this about dummy node
1 parent 3814584 commit 1e785ce

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

linkedlist/removeNthFromEnd.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,18 @@ def removeNthFromEnd(self, head, n):
1010
for _ in xrange(n):
1111
fast = fast.next
1212

13-
# 我本来的代码没有15-16行,可以给我解释下这个edge case干了什么么
14-
# 论坛里面都设置了dummynode,这题为什么要设置dummynode
15-
# 先去玩狼人杀,回来继续研究
13+
# 总算懂这个Cornor Case了
14+
# 因为没有设置DummyNode,如果出现以下的这个Cornor Case
15+
# 1 -> 2, 然后 N = 2
16+
# 我们要做什么呢,删除1,然后返回2,也就是size of the list
17+
# 但如何删除1,也就是Head,以下所有的代码都没有考虑到这个点
18+
# 如果有个DummyHead,我们可以尽管的将DummyHead连接到Head,
19+
# 然后将DummyHead指到2就行了,Head就删除了
20+
# 若没有DummyHead,以下的代码无法处理Head被删除的Cornor Case
21+
22+
# 那么这个Cornor case就牛逼了
23+
# 在没有Cornor Case的情况下,if not fast,也就意味着size就等于N
24+
# 直接返回head.next,也就意味着删除了Head,牛不牛!?
1625
if not fast:
1726
return head.next
1827
while fast.next:

0 commit comments

Comments
 (0)