leetcode98 驗證二叉搜尋樹

2021-09-20 15:17:22 字數 1478 閱讀 6691

這道題有兩種思路:

1)利用二叉搜尋樹的性質,即:中序遍歷為公升序。

我們先求得中序遍歷(遞迴or非遞迴),再判斷是否為公升序。

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def isvalidbst(self, root):

""":type root: treenode

:rtype: bool

"""def zhongxu(root,result=):

if root==none:

return result

result=zhongxu(root.left)

result=zhongxu(root.right)

return result

result=zhongxu(root)

return [result[i]2)按照二叉搜尋樹的定義,左子樹上的值都是小於根結點,右子樹上的值都是大於根結點。

class solution

else

}bool isvalidbst(treenode* root)

};```

3)我一開寫的只考慮了左中右判斷,沒有考慮根結點大小的錯誤**如下:(比如[10,5,15,null,null,6,20]測試用例過不了)

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def isvalidbst(self, root):

""":type root: treenode

:rtype: bool

"""if root==none:

return true

if root.left!=none and root.left.val>=root.val:

return false

if root.right!=none and root.right.val<=root.val:

return false

return self.isvalidbst(root.left) and self.isvalidbst(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 如果對二叉搜尋樹不夠了解,可能...