題目:
思路一:遞迴
分析:二叉搜尋樹是一棵二叉樹,每個節點都有以下特性:
(1)大於左子樹上任意乙個節點的值
(2)小於右子樹上任意乙個節點的。
遞迴三部曲:
確定函式引數和返回值
引數為樹的根節點,返回以目標值為根節點的子樹
確定終止條件
節點為空或者找到目標值的節點就返回
單層邏輯
如果訪問到的節點的值比目標值大,就訪問左子樹;如果比目標值小,就訪問右子樹。節點不存在就返回null;
treenode*
searchbst
(treenode* root,
int val)
if(root-
>valreturn
null;}
簡潔的寫法
class
solution
};
思路二:迭代法
根據二叉搜尋樹的特性:如果節點值比目標值大,則去左子樹找,如果比目標值小,則去右子樹找;如果相等就返回;
遍歷結束還沒找到就返回
treenode*
searchbst
(treenode* root,
int val)
return
null
;}
Leetcode 700 二叉搜尋樹中的搜尋
給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,給定二叉搜尋樹 4 2 7 1 3和值 2 你應該返回如下子樹 2 1 3在上述示例中,如果要找的值是 5,但因為沒有節點值為 5,我們應該返回 nu...
leetcode 700 二叉搜尋樹中的搜尋
給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。definition for a binary tree node.class treenode object def init self,x self.v...
leetcode700 二叉搜尋樹中的搜尋
給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,給定二叉搜尋樹 4 2 7 1 3 和值 2 你應該返回如下子樹 2 1 3 在上述示例中,如果要找的值是 5,但因為沒有節點值為 5,我們應該返回 ...