题解 | #判断是不是二叉搜索树#

判断是不是二叉搜索树

https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b

using System;
using System.Collections.Generic;

/*
public class TreeNode
{
    public int val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode (int x)
    {
        val = x;
    }
}
*/

class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类
     * @return bool布尔型
     */
    public bool isValidBST (TreeNode root) {
        // write code here
        if (root == null) return false;
        if (root.left == null && root.right == null) return true;
        if (root.left != null && root.right == null) {
            return root.left.val < root.val && isValidBST(root.left);
        }
        if (root.right != null && root.left == null) {
            return root.right.val > root.val && isValidBST(root.right);
        }
        if (root.left.val < root.val && root.right.val > root.val) {
            if (root.left.right != null && root.right.left == null) {
                return root.val > root.left.right.val && isValidBST(root.left) &&
                       isValidBST(root.right);
            } else if (root.left.right == null && root.right.left != null)
                return root.val < root.right.left.val && isValidBST(root.left) &&
                       isValidBST(root.right);
            else if (root.left.right == null && root.right.left == null)
                return isValidBST(root.left) && isValidBST(root.right);
            else
                return root.val > root.left.right.val && root.val < root.right.left.val &&
                       isValidBST(root.left) && isValidBST(root.right);
        }
        return false;
    }
}

#判断一个二叉树是否是二叉搜索#
全部评论
求大佬看看我的不足之处
点赞 回复 分享
发布于 2023-02-26 00:41 广东

相关推荐

不愿透露姓名的神秘牛友
07-03 17:37
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务