leetcode 700 二叉搜尋樹中的搜尋

2021-10-10 06:34:53 字數 698 閱讀 9704

題目:

思路一:遞迴

分析:二叉搜尋樹是一棵二叉樹,每個節點都有以下特性:

(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,我們應該返回 ...