博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Validate Binary Search Tree leetcode
阅读量:6497 次
发布时间:2019-06-24

本文共 983 字,大约阅读时间需要 3 分钟。

Given a binary tree, determine if it is a valid binary search tree

(BST).

Assume a BST is defined as follows:

The left subtree of a node contains only nodes with keys less than the

node's key. The right subtree of a node contains only nodes with keys
greater than the node's key. Both the left and right subtrees must
also be binary search trees.

递归法

思路

遍历树, 用数组保存之前访问的节点, 如果之前访问的都小于当前访问的值那么树就是合理树

复杂度

时间 O(n) 空间 递归栈O(log)

代码

public boolean isValidBST(TreeNode root) {    if (root == null) {        return true;    }    ArrayList
cur = new ArrayList
(); cur.add(null); return helper(cur, root);}public boolean helper(ArrayList
cur, TreeNode root) { if (root == null) { return true; } boolean left = helper(cur, root.left); if (cur.get(0) != null) { if (cur.get(0) >= root.val) { return false; } } cur.set(0, root.val); boolean right = helper(cur, root.right); return left && right;}

转载地址:http://aquyo.baihongyu.com/

你可能感兴趣的文章
[SignalR2] 认证和授权
查看>>
爬虫学习之-xpath
查看>>
js jQuery 右键菜单 清屏
查看>>
深入理解let和var的区别(暂时性死区)!!!
查看>>
dotConnect for Oracle
查看>>
Android开发需要的知识
查看>>
从零开始iOS8编程【iOS开发常用控件】
查看>>
我的友情链接
查看>>
软链接、硬链接
查看>>
详解linux vi命令用法
查看>>
mysql中执行shell命令
查看>>
Eclipse下C/C++开发环境搭建
查看>>
Eclipse中设置在创建新类时自动生成注释
查看>>
我的友情链接
查看>>
CoreOS 手动更新
查看>>
golang 分页
查看>>
再论机械式针对接口编程
查看>>
25 个 Linux 性能监控工具
查看>>
C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想
查看>>
Tengine-2.1.1 ngx_http_concat_module 400问题
查看>>