验证二叉搜索树Python解法
生活随笔
收集整理的這篇文章主要介紹了
验证二叉搜索树Python解法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給你一個二叉樹的根節(jié)點 root ,判斷其是否是一個有效的二叉搜索樹。
有效 二叉搜索樹定義如下:
節(jié)點的左子樹只包含 小于 當(dāng)前節(jié)點的數(shù)。
節(jié)點的右子樹只包含 大于 當(dāng)前節(jié)點的數(shù)。
所有左子樹和右子樹自身必須也是二叉搜索樹。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/validate-binary-search-tree
?
例:
輸入:root = [2,1,3] 輸出:true解析:
中序遍歷,將遍歷后的值存入列表,然后對列表進(jìn)行去重,排序操作,如果和原列表一致,那么代表為二叉搜索樹。
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object):def isValidBST(self, root):""":type root: TreeNode:rtype: bool"""nums = self.search(root)return sorted(set(nums)) == nums # sorted()用來排序,set()用來去重def search(self, root): # 搜索函數(shù)if root == None: # 判空return []return self.search(root.left) + [root.val] + self.search(root.right) # 左子樹 + 根 + 右子樹(中序遍歷)總結(jié)
以上是生活随笔為你收集整理的验证二叉搜索树Python解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年美国电脑出货量下降18%!戴尔
- 下一篇: 恢复二叉搜索树Python解法