• Validate Binary Search Tree -- LeetCode


    Given a binary tree, determine if it is a valid binary search tree (BST).

    Assume a BST is defined as follows:

    • The left subtree of a node contains only nodes with keys less than the node's key.
    • The right subtree of a node contains only nodes with keys greater than the node's key.
    • Both the left and right subtrees must also be binary search trees.

    思路:二叉搜索树如果按照in-order traversal来遍历的话,所有节点会按照从小到大的顺序被遍历。

    Pre-order

    1. Display the data part of the root (or current node).
    2. Traverse the left subtree by recursively calling the pre-order function.
    3. Traverse the right subtree by recursively calling the pre-order function.

    In-order

    1. Traverse the left subtree by recursively calling the in-order function.
    2. Display the data part of the root (or current node).
    3. Traverse the right subtree by recursively calling the in-order function.

    In a BST, in-order traversal retrieves data in sorted order.

    Post-order

    1. Traverse the left subtree by recursively calling the post-order function.
    2. Traverse the right subtree by recursively calling the post-order function.
    3. Display the data part of the root (or current node).
     1 class Solution {
     2 public:
     3     bool validate(TreeNode* root, TreeNode* &pre)
     4     {
     5         if (root == NULL) return true;
     6         if (!validate(root->left, pre)) return false;
     7         if (pre != NULL && pre->val >= root->val) return false;
     8         pre = root;
     9         return validate(root->right, pre);
    10     }
    11     bool isValidBST(TreeNode* root) {
    12         TreeNode* pre = NULL;
    13         return validate(root, pre);
    14     }
    15 };

    代码中,我用了一个全局指针pre来记录in-order traversal过程中的上一个节点。如果上一个节点的值比当前节点的值要大或者相等,则不是BST。

  • 相关阅读:
    2012年春晚剧本
    研究机器人
    85.圆角边框的两大要素 Walker
    81.边框设置 Walker
    76.背景固定 Walker
    84.边框方向 Walker
    86.圆角边框设置 Walker
    82.边框宽度和边框颜色 Walker
    88.轮廓和样式重置 Walker
    77.背景简写 Walker
  • 原文地址:https://www.cnblogs.com/fenshen371/p/5162043.html
Copyright © 2020-2023  润新知