每個節點中的值必須大於儲存在其左側子樹中的任何值。
每個節點中的值必須小於儲存在其右子樹中的任何值。
首先二叉搜尋樹有個特性即它的中序遍歷為乙個遞增的有序序列那麼我們就可以利用這個特性來驗證二叉搜尋樹,我們只要判斷list.get(i-1)>list.get(i)就可以判斷不是二叉搜尋樹,如果迴圈完畢則是二叉搜尋樹,這裡list是中序遍歷結果
我們直接上**:
class
solution
}return
true
;//迴圈完畢是二叉搜尋樹
}//中序遍歷
public
void
inorder
(treenode root,list
list)
inorder
(root.left,list)
; list.
add(root.val)
;inorder
(root.right,list);}
}
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...
驗證二叉搜尋樹
題目 給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false ...
驗證二叉搜尋樹
給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例 2 輸入 5 1 4 3 6 輸出 false 解釋 輸...