File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,33 @@ def backtrack(i):
42
42
return backtrack(0 )
43
43
```
44
44
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
+
45
72
## 示例
46
73
47
74
### [ subsets] ( https://leetcode-cn.com/problems/subsets/ )
You can’t perform that action at this time.
0 commit comments