习题4.3 是否二叉搜索树 (25分) 刷题笔记

    技术2022-07-11  138

    前言

    本题判断是否为二叉搜索树,定义如下 !!!超级注意!!! 只要是根节点左子树以及左子树的儿子,孙子,曾孙子,曾曾…不管是左边的还是右边的,都要满足,比根节点的值要小; 根节点的右子树同理。

    so,敲的时候,不能只考虑相邻的根节点与左子树或右子树的大小关系; 不然就会和本菜鸡一样,一直不晓得自己哪里错了。。。

    最后偷偷瞄了一眼,别银的code,奥!!!原来如此!!! 就一中序遍历,不过如此~爷就是想不到!切!

    爷直接上代码,呸。 给爷们上代码~

    bool flag=true; int pre=-9999999; void InOrderTraverse(BinTree T){ if(!T){ return; } InOrderTraverse(T->Left); if(pre>=T->Data){ flag=false; return; }else{ pre=T->Data; } InOrderTraverse(T->Right); } bool IsBST ( BinTree T ){ if(!T){ return true; } InOrderTraverse(T); return flag; }
    Processed: 0.011, SQL: 9