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

判断是不是二叉搜索树

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

C语言

//参考思路:把二叉树按照前序遍历把节点值压入栈,根据栈是否单调递增判断

void recursion(struct TreeNode* node, int *stack, int *st_i){

    if(node == NULL)return;

    recursion(node->left, stack, st_i); //前序遍历,把节点值压入栈

    stack[(*st_i)++] = node->val;

    recursion(node->right, stack, st_i);

}

bool isValidBST(struct TreeNode* root ) {

    // write code here

    int stack[10000] = {0};

    int st_i = 0;

    recursion(root, stack, &st_i);

    for(int i=0; i<st_i-1; i++){    //判断栈是否单调递增

        if(stack[i] >= stack[i+1])

            return false;

    }

    return true;

}

全部评论

相关推荐

06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-18 18:23
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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