給定二叉搜尋樹(bst)的根節點和乙個值。 你需要在bst中找到節點值等於給定值的節點。 返回以該節點為根的子樹。 如果節點不存在,則返回 null。
二叉樹天然適合遞迴。
依然是深度優先搜尋dfs。
結束條件有兩個,
根節點值等於目標值,返回根節點
根節點為空,返回none
不借用全域性變數儲存方法的返回值,在遞迴內通過return傳遞。
因為是二叉搜尋樹,所以深度搜尋遞迴可以進行篩選。
演算法:
class
solution
:def
searchbst
(self, root: treenode, val:
int)
-> treenode:
ifnot root:
return
none
if root.val==val:
return root
elif root.val>val:rec=self.searchbst(root.left,val)
else
:rec=self.searchbst(root.right,val)
return rec
執行用時:80 ms, 在所有 python3 提交中擊敗了90.52%的使用者
class
solution
:def
searchbst
(self, root: treenode, val:
int)
-> treenode:
ifnot root or root.val==val:
return root
return self.searchbst(root.left,val)
if root.val>val else self.searchbst(root.right,val)
700二叉搜尋樹中的搜尋
給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,思路 重點是bst,也就是說是有序的,左小右大,現在要找到那個值,就是不斷的遞迴找,對於每個節點分四個情況,為空返回null,小了往左邊找,大了往右邊...
700 二叉搜尋樹中的搜尋
二叉搜尋樹中的搜尋 給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,給定二叉搜尋樹 4 2 7 1 3和值 2 你應該返回如下子樹 2 1 3在上述示例中,如果要找的值是 5,但因為沒有節點值為 5...
力扣 98 驗證二叉搜尋樹
題目 傳送門 題目分析 二叉搜素樹有乙個很重要的性質 若左子樹不空,則左子樹上的所有結點的值均小於它的根節點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根節點的值。那麼,很容易得到,對二叉搜尋樹進行中序遍歷,得到的序列應該是公升序的。這樣的話,我們在中序遍歷的時候檢查當前節點的值是否大於...