送分题,二叉树遍历就行了,至于怎么遍历都行。用的常规思路做的。
Go版本:
var res *TreeNode;
func searchBST(root *TreeNode, val int) *TreeNode {
res=nil;
return dfs(root,val);
}
func dfs(root *TreeNode,val int)*TreeNode{
if(root==nil){
return nil;
}
if root.Val==val{
res=root;
}
dfs(root.Left,val);
dfs(root.Right,val);
return res;
}
java版本:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
TreeNode res;
public TreeNode searchBST(TreeNode root, int val) {
return dfs(root,val);
}
public TreeNode dfs(TreeNode root,int val){
if(root==null){
return null;
}
if(root.val==val){
res=root;
}
dfs(root.left,val);
dfs(root.right,val);
return res;
}
}
网友评论