二叉樹 LeetCode 98 驗證二叉搜尋樹

2021-10-09 14:22:23 字數 836 閱讀 6432

題面

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。

假設乙個二叉搜尋樹具有如下特徵:

節點的左子樹只包含小於當前節點的數。

節點的右子樹只包含大於當前節點的數。

所有左子樹和右子樹自身必須也是二叉搜尋樹。

示例1:

輸入:

2/ \

13輸出:true

例項2:

輸入:

5/ \

14/ \ 3

6輸出:

false

解釋: 輸入為:[5

,1,4

,null,null,3,

6]。根節點的值為 5 ,但是其右子節點值為 4 。

題目分析

記錄一下-_-一開始自己想的簡單了

ac**

中序遍歷非迭代版本

class

solution

else

}return

true;}

};中序遍歷遞迴版本(雙高版本)

class

solution

return ans;

}bool

isvalidbst

(treenode* root)

return

true;}

};中序遍歷遞迴改良版

class

solution

bool

isvalidbst

(treenode* root)

};

錯誤反饋: [email protected]

Leetcode 98 驗證二叉樹

採用遞迴的方式,判斷左節點小於根,右節點大於根。結果 錯誤。錯誤案例為 原因 右孩子的左孩子 右孫子 可能小於父親。6 10,出錯。想到的解決方案 在遞迴過程中吧祖先記錄下來,用以後續的比較。在遞迴過程中加入祖先,並且加入 bool 標識指示是左孩子還是右孩子。public class soluti...

leetcode 98 驗證二叉搜尋樹(二叉樹)

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 二叉搜尋樹數的中序遍歷序列...

leetcode 98 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。乙個二叉搜尋樹具有如下特徵 示例 1 輸入 1 3 輸出 true 示例 2 輸入 1 4 3 6 輸出 false 解釋 輸入為 5,1,4,null,null,3,6 根節點的值為 5 但是其右子節點值為 4 關鍵資訊 1二叉搜尋樹的中序遍歷是遞...