Trees
Validate Binary Search Tree
Assume BST特指: left subtree contains nodes less than node's key; right subtree contains nodes larger than node's key;
所以在这个问题上,如果要以recursion的思路解决的话,每一个节点告诉自己的父节点的信息为 True or False. 但是每一层的判断准侧与范围又是不一样的,所以每一层需要向上一层传递范围
class Solution {
public boolean helper(TreeNode node, Integer lower, Integer upper) {
if (node == null) return true;
int val = node.val;
if (lower != null && val <= lower) return false;
if (upper != null && val >= upper) return false;
if (! helper(node.right, val, upper)) return false;
if (! helper(node.left, lower, val)) return false;
return true;
}
public boolean isValidBST(TreeNode root) {
return helper(root, null, null);
}
}Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
用Recursive进行解决,首先要明确退出条件是:length == 0
Convert Sorted to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
Minimum Depth of Binary Tree
顾名思义
Path Sum
Last updated
Was this helpful?