zoukankan      html  css  js  c++  java
  • BST(二叉搜索树)相关

    1.BST的合法性:validate-binary-search-tree

      class TreeNode {
          int val;
          TreeNode left;
          TreeNode right;
          TreeNode(int x) { val = x; }
      }
     
    public class Solution {
        //方法1:每个结点都对应一个上限,一个下限。
        public boolean isValidBST(TreeNode root) {
            return isValidRoot(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
        }
        
        public boolean isValidRoot(TreeNode root,int lower,int upper) {
            if(root==null)
                return true;
            if(root.val<=lower || root.val>=upper)
                return false;
            return isValidRoot(root.left, lower, root.val)
                    && isValidRoot(root.right, root.val, upper);    
        }
    }
    
    /* 
        //方法2:中序遍历,记录前一个结点,与当前结点的值比较。
        public boolean isValidBST(TreeNode root) {
            inorderTraversal(root);
            return isValidBST;
        }
        
        TreeNode pre;
        boolean isValidBST=true;
        public void inorderTraversal(TreeNode root) {
            if(root!=null) {
                inorderTraversal(root.left);
                if(pre!=null && pre.val>=root.val)
                    isValidBST=false;
                pre=root;
                inorderTraversal(root.right);
            }
        }
    }
    */

    2.复原二叉树:recover-binary-search-tree

  • 相关阅读:
    3.30作业
    3.30课堂
    3.29作业
    3,29课堂
    3。26作业
    3.26课堂
    3.25作业
    3.25课堂
    55、DOM与BOM的操作及事件的简介
    54、js的数据类型及对象
  • 原文地址:https://www.cnblogs.com/midiyu/p/8543587.html
Copyright © 2011-2022 走看看