add new solutions

This commit is contained in:
Yiyang Kang 2026-02-01 14:56:08 +09:00
parent 67cad91898
commit 51975f3386
Signed by: kkyy
SSH key fingerprint: SHA256:lJSbAzC3MvrSORdvIVK6h/3g+rVKJNzM7zq0MgA9WKY
24 changed files with 933 additions and 14 deletions

View file

@ -0,0 +1,46 @@
package q450
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func del(node *TreeNode) *TreeNode {
if node == nil || node.Left == nil && node.Right == nil {
return nil // is leaf
}
if node.Left == nil {
return node.Right
}
if node.Right == nil {
return node.Left
}
p := node.Left
for p.Right != nil {
p = p.Right
}
p.Right = node.Right
return node.Left
}
func findAndDel(node **TreeNode, key int) {
if *node == nil {
return
}
if (**node).Val == key {
*node = del(*node)
} else if key < (**node).Val {
findAndDel(&(**node).Left, key)
} else {
findAndDel(&(**node).Right, key)
}
}
func deleteNode(root *TreeNode, key int) *TreeNode {
findAndDel(&root, key)
return root
}
var _ = deleteNode