C# Suii
\npublic class FindElements {\n    public TreeNode myroot;\n    public FindElements(TreeNode root) {\n        this.myroot=root;\n        root.val=0;\n        tr
```\npublic class FindElements {\n    public TreeNode myroot;\n    public FindElements(TreeNode root) {\n        this.myroot=root;\n        root.val=0;\n        traverse(root);\n    }\n    public void traverse(TreeNode root){\n        if(root==null)return;\n        if(root.left!=null){\n            root.left.val=2*root.val+1;\n            traverse(root.left);\n        }\n        if(root.right!=null){\n            root.right.val=2*root.val+2;\n            traverse(root.right);\n        }\n    }\n    \n    public bool Find(int target) {\n        return searchfortarget(this.myroot,target);\n    }\n    public bool searchfortarget(TreeNode root, int target){\n        if(root==null)return false;\n        if(root.val==target)return true;\n        return searchfortarget(root.left,target)||searchfortarget(root.right,target);\n    }\n}\n\n/**\n * Your FindElements object will be instantiated and called as such:\n * FindElements obj = new FindElements(root);\n * bool param_1 = obj.Find(target);\n */\n```
[]