Skip to content

Commit 67465de

Browse files
author
邹昊晟(Haosheng.Z)
committed
递归同时return,backtrack.md中新增
1 parent 1078522 commit 67465de

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

advanced_algorithm/backtrack.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,33 @@ def backtrack(i):
4242
return backtrack(0)
4343
```
4444

45+
### 类似同时递归和return [lc450.删除二叉搜索树中的节点](https://leetcode.cn/problems/delete-node-in-a-bst/)
46+
47+
```python
48+
class Solution:
49+
def deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:
50+
if root is None:
51+
return root
52+
if root.val > key: # 去左子树删除
53+
root.left = self.deleteNode(root.left, key)
54+
elif root.val < key: # 去右子树删除
55+
root.right = self.deleteNode(root.right, key)
56+
else: # 把该节点的左子树,放到右子树的最小值节点的左孩子
57+
if root.right is None:
58+
root = root.left
59+
elif root.left is None:
60+
root = root.right
61+
else:
62+
node = root.right
63+
while node.left is not None:
64+
node = node.left
65+
node.left = root.left
66+
# 用右子树节点代替自己
67+
root = root.right
68+
return root
69+
```
70+
71+
4572
## 示例
4673

4774
### [subsets](https://leetcode-cn.com/problems/subsets/)

0 commit comments

Comments
 (0)