找工作刷題記錄 013驗證二叉搜尋樹

2021-09-13 11:25:09 字數 1193 閱讀 9249

⼆叉搜尋樹(英語:binary search tree),也稱⼆叉搜尋樹、有序⼆叉樹(英語:ordered binary tree),排序⼆叉樹(英語:

sorted binary tree),是指⼀棵空樹或者具有下列性質的⼆叉樹:

1. 若任意節點的左⼦樹不空,則左⼦樹上所有結點的值均⼩於它的根結點的值;

2. 若任意節點的右⼦樹不空,則右⼦樹上所有結點的值均⼤於它的根結點的值;

3. 任意節點的左、右⼦樹也分別為⼆叉查詢樹。

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。

假設乙個二叉搜尋樹具有如下特徵:

示例 1:

輸入:2

/ \1 3輸出:true

示例 2:

輸入: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...