8000 Fixed a bug where remove method only clears the last node. · codee/swift-algorithm-club@dcf9d22 · GitHub
[go: up one dir, main page]

Skip to content

Commit dcf9d22

Browse files
committed
Fixed a bug where remove method only clears the last node.
1 parent ed3a321 commit dcf9d22

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Trie/Trie.playground/Sources/Trie.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,16 @@ public extension Trie {
7373
currentNode.isTerminating = false
7474
} else {
7575
var character = currentNode.value
76-
currentNode.parent?.children[character!] = nil
77-
character = currentNode.value
76+
77+
while currentNode.children.count == 0, let parent = currentNode.parent {
78+
currentNode = parent
79+
currentNode.children[character!] = nil
80+
character = currentNode.value
81+
82+
if currentNode.isTerminating {
83+
break
84+
}
85+
}
7886
}
7987
}
8088
}

0 commit comments

Comments
 (0)
0