算法递归题

    科技2024-12-12  39

    验证二叉搜索树(利用二叉搜索树的定义来写递归 即左子树必须小于根 右子树必须大于根 )

    class Solution{

    public boolean heelper(TreeNode node,Integer lower,Integer upper){    定义一个树node  最小值和最大值  左子树不能大于根  右子树不能小于根

    if(node==null)  return false;

    int val=node.val;

    if(lower!=null&&val<=lower)  return false;

    if(upper!=null&&val>=upper)  return false;

    if(!helper(node.right,val,upper))  return false;

    if(!(helper(node.left,lower,val))   return  false;

    return true;

    }

    public boolean isValidBST(TreeNode root){

    return  helper(root,null,null);

    }

    }

    找出二叉树中的最大深度

    class Solution{

    public int maxDepth(TreeNode root){

    if(root==null)  return 0;

    return 1+Math.max(maxDepth(root.left),maxDepth(root.right));  直接递归找出左右子树最大高度的树即可

    }

    }

    Processed: 0.011, SQL: 8