Hello, World!
此内容尚不支持你的语言。
恢复树以及查询
Given a binary tree with the following rules
- root.val = 0
- If treeNode.val == x and treeNode.left != null, then treeNode.left.val = 2 * x + 1
- If treeNode.val == x and treeNode.right != null, then treeNode.right.val = 2 * x + 2
Now the binary tree is reseted, which means all treeNode.val have been changed to -1.
Implement the TreeRecover class:
- TreeRecover(TreeNode* root) Initializes the object with a reseted binary tree and recovers it.
- bool exists(int target) Returns true if the target value exists in the recovered binary tree.
package main
import "fmt"
type TreeNode struct { Val int Left *TreeNode Right *TreeNode}
func f1(t *TreeNode, v int) { t.Val = v
if t.Left != nil { f1(t.Left, 2 * t.Val + 1) }
if t.Right != nil { f1(t.Right, 2 * t.Val + 2) }
}
func (t *TreeNode)TreeRecover() { f1(t, 0)}