⼆叉搜尋樹(英語:binary search tree),也稱⼆叉搜尋樹、有序⼆叉樹(英語:ordered binary tree),排序⼆叉樹(英語:
sorted binary tree),是指⼀棵空樹或者具有下列性質的⼆叉樹:
1. 若任意節點的左⼦樹不空,則左⼦樹上所有結點的值均⼩於它的根結點的值;
2. 若任意節點的右⼦樹不空,則右⼦樹上所有結點的值均⼤於它的根結點的值;
3. 任意節點的左、右⼦樹也分別為⼆叉查詢樹。
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。
假設乙個二叉搜尋樹具有如下特徵:
示例 1:
輸入:2示例 2:/ \1 3輸出:true
輸入:5思路:中序遍歷,是公升序的則是對的,只需要儲存前繼節點就可以了;使用遞迴,左子樹所有節點的最大值小於根節點,右子樹所有節點的最小值大於根節點。/ \1 4
/ \3 6輸出:false解釋:輸入為: [5,1,4,null,null,3,6]。
根節點的值為 5 ,但是其右子節點值為 4 。
class solution:
def isvalidbst(self, root):
""":type root: treenode
:rtype: bool
"""self.prev = none
return self.helper(root)
def helper(self, root):
if root is none:
return true
if not self.helper(root.left):
return false
if self.prev and self.prev.val >= root.val:
return false
self.prev = root
return self.helper(root.right)
刷題找工作(二叉樹)
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。還原二叉樹 看解題 public class solution public treenode dfs int pre,int in...
找工作刷題記錄 007有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true思路 使用棧的方法。python語法 查詢字典的時候預設查詢鍵值key.class solution object de...
找工作刷題記錄 020括號的有效組合
給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 思路 遞迴的搜尋方式,深度搜尋。class solution def generateparenthesis self,n int list str self.list self...