LeetCode 98 驗證二叉搜尋樹

2021-09-24 17:42:16 字數 858 閱讀 6191

這道題目是二叉搜尋樹種很經典的一道,題目說明很簡單,就是驗證一棵二叉樹是否是二叉搜尋樹,題目如下:

解決這樣的題目就需要從二叉搜尋樹的特性入手,那麼二叉搜尋樹最重要的乙個特性就是:二叉樹中所有節點的左子樹中的節點的值都小於該節點的值,所有節點的右子樹中的節點的值都大於該節點的值。根據這個特性,這個題目最有效的解法就是,將這個二叉樹進行中序遍歷,那麼每個子樹遍歷的順序都是:左→根→右,因為在二叉搜尋樹種,值的大小一定是:左《根《右,那麼整個二叉樹遍歷完成之後,遍歷生成的序列一定是公升序的。根據這個特性我們就可以將這道題目的解題**寫出,中序遍歷我們可以使用遞迴的方法。

python

class solution(object):

def isvalidbst(self, root):

""":type root: treenode

:rtype: bool

"""inorder =

inorder = self.inorder(root)

return inorder == list(sorted(set(root)))

def inorder(self, root):

if root is none:

return

return self.inorder(root.left) + [root.val] + self.inorder(root.right)

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 1 3 輸出 true 示例 2 輸入 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 關鍵資訊 1二叉搜尋樹的中序遍歷是遞...

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 解題思路 中序遍歷遞增,每次只...

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 如果對二叉搜尋樹不夠了解,可能...