zoukankan      html  css  js  c++  java
  • [leetcode]Validate Binary Search Tree

    经过昨日训练,中序遍历基本会了。所以这个就比较顺利,对二分查找树来说,中序遍历就是递增的。所以遍历一下,遇到反例返回false即可。

    public class Solution {
        public boolean isValidBST(TreeNode root) {
            Stack<TreeNode> stack = new Stack<TreeNode>();
            TreeNode n = root;
            int last = Integer.MIN_VALUE;
            while (n != null || !stack.empty()) {
                if (n != null) {
                    stack.push(n);
                    n = n.left;
                }
                else {
                    n = stack.pop();
                    // visit n
                    if (n.val <= last) return false;
                    last = n.val;
                    n = n.right;
                }
            }
            return true;
        }
    }
    

    另外一种递归解法见此:http://www.cnblogs.com/remlostime/archive/2012/11/16/2772629.html

    递归判断,递归时传入两个参数,一个是左界,一个是右界,节点的值必须在两个界的中间,同时在判断做子树和右子树时更新左右界。

    Python3,记录上一个visited的值,并递归

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def isValidBST(self, root: TreeNode) -> bool:
            prev = [None]
            return self.checkBST(root, prev)
            
        def checkBST(self, root: TreeNode, prev: []) -> bool:
            if root is None:
                return True
            if root.left is not None:
                if not self.checkBST(root.left, prev):
                    return False
            if prev[0] is not None and prev[0] >= root.val:
                return False
            prev[0] = root.val
            if root.right is not None:
                if not self.checkBST(root.right, prev):
                    return False
            return True
    

      

  • 相关阅读:
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    第三章 熟悉常用的HDFS操作
    数据结构化与保存
    获取全部校园新闻
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    Hadoop综合大作业
  • 原文地址:https://www.cnblogs.com/lautsie/p/3262738.html
Copyright © 2011-2022 走看看