98. Validate Binary Search Tree
生活随笔
收集整理的這篇文章主要介紹了
98. Validate Binary Search Tree
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不定期更新leetcode解題java答案。
采用pick one的方式選擇題目。?
題目要求判斷樹是否為二叉搜索樹。要求為:1、一個節點的左子樹的所有節點均小于該節點;2、一個節點的右子樹上的所有節點均大于該節點;3、所有節點均滿足1,2的條件。
容易想到采用遞歸的方式依次向下檢測。遞歸需要傳遞的參數為下一需要檢測的節點,以及該節點應滿足的上下界的值;此外如果節點為最左側或最右側節點,不應檢測其下界或上界。
代碼如下:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean isValidBST(TreeNode root) { 12 return root == null ? true : isValidBST(root.left, Integer.MIN_VALUE, root.val, true, false)&& isValidBST(root.right, root.val, Integer.MAX_VALUE, false, true); 13 } 14 public boolean isValidBST(TreeNode root, int smallVal, int largeVal, boolean isLeft, boolean isRight){ 15 if(root == null) 16 return true; 17 else if((!isRight && root.val >= largeVal) || (!isLeft && root.val <= smallVal)) 18 return false; 19 else 20 return isValidBST(root.left, smallVal, root.val, isLeft, false) &&
isValidBST(root.right, root.val, largeVal, false, isRight); 21 } 22 23 }
?
轉載于:https://www.cnblogs.com/zslhq/p/5987973.html
總結
以上是生活随笔為你收集整理的98. Validate Binary Search Tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery flot pie画饼图
- 下一篇: cookie练习