力扣日記 700 二叉搜尋樹中的搜尋 遞迴

2021-10-04 02:15:23 字數 995 閱讀 5494

給定二叉搜尋樹(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 驗證二叉搜尋樹

題目 傳送門 題目分析 二叉搜素樹有乙個很重要的性質 若左子樹不空,則左子樹上的所有結點的值均小於它的根節點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根節點的值。那麼,很容易得到,對二叉搜尋樹進行中序遍歷,得到的序列應該是公升序的。這樣的話,我們在中序遍歷的時候檢查當前節點的值是否大於...