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?