详解-LeetCode #98

98 ——验证二叉搜索树

考察内容:二叉搜索数性质- 左<根<右
递归
中序遍历
解题思路:递归
1.如果当前节点为空,满足——True
2.如果该节点大于上界或小于下界——F
3.继续判断该节点左(右)节点,若节点小(大)于根节点—T


```python
class Solution:    
def isValidBST(self, root: TreeNode) -> bool:      
    def helper(node, lower = float('-inf'),upper = float('inf')): 
               if not node:
                          return True
                 val = node.val           
                  if val <= lower or val >= upper:
                             return False
                    if not helper(node.right ,val, upper):
                              return False
                     if not helper(node.left,lower,val):
                              return False
               return True 
       return helper(root)
中序遍历:
利用栈先进后出和中序遍历的特点进行求解
步骤:利于 stack 即stack.pop分别储存左节点及根节点
判断是否满足 左<根<右

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值