面試題 04 05 合法二叉搜尋樹

2021-10-18 07:39:16 字數 1021 閱讀 9109

在二叉搜尋樹中:

1.若任意結點的左子樹不空,則左子樹上所有結點的值均不大於它的根結點的值。

2. 若任意結點的右子樹不空,則右子樹上所有結點的值均不小於它的根結點的值。

3.任意結點的左、右子樹也分別為二叉搜尋樹。

/**

* definition for a binary tree node.

* struct treenode

* };

*///二叉搜尋樹

class

solution

bool

dfs(treenode* root,

long

long low,

long

long high)

if(low >= root-

>val || high <= root -

> val)

return

dfs(root-

>left, low, root-

>val)

&&dfs

(root -

> right, root -

> val, high);}

};

/**

* definition for a binary tree node.

* struct treenode

* };

*///二叉搜尋樹,中序遍歷

class

solution

dfs(root)

;for

(int i =

0; i < ans.

size()

-1; i++)}

return

true;}

void

dfs(treenode* root)}}

;

刷題 力扣 面試題 04 05 合法二叉搜尋樹

題目鏈結 題目描述 實現乙個函式,檢查一棵二叉樹是否為二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 題目分析 根據題目描述,判斷是否是二叉搜尋...

二叉搜尋樹面試題總結

0.什麼是二叉搜尋樹 二叉搜尋樹就是左子樹所有結點都小於根結點,右子樹所有結點都打於根節點。當然這個定義遞迴的,它的左右子樹也滿足這個特點 例如 0.定義結構typedef int bstdatatype 定義二叉搜尋樹結點型別 typedef struct bstreenode bstreenod...

面試題 04 09 二叉搜尋樹序列

從左向右遍歷乙個陣列,通過不斷將其中的元素插入樹中可以逐步地生成一棵二叉搜尋樹。給定乙個由不同節點組成的二叉樹,輸出所有可能生成此樹的陣列。示例 給定如下二叉樹 2 1 3 返回 2,1,3 2,3,1 不會做,後來看了題解 題目的意思是,按某種順序依次插入所有節點 不能插入已有樹的中間,只能插在最...