zoukankan      html  css  js  c++  java
  • LeetCode:Validate Binary Search Tree

    题目链接

    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.

    分析:根据BST中序遍历序列有序的性质判断,只要在中序遍历二叉树的代码基础上加上判断相邻元素关系的语句即可                                                                                                                                      本文地址

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  * int val;
     5  * TreeNode *left;
     6  * TreeNode *right;
     7  * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     bool isValidBST(TreeNode *root) {
    13         // IMPORTANT: Please reset any member data you declared, as
    14         // the same Solution instance will be reused for each test case.
    15         //注意题目要求是 less than和greater than;
    16         stack<TreeNode*> S;
    17         TreeNode *pre = NULL, *p = root;
    18         while(p || S.empty() == false)
    19         {
    20             while(p)
    21             {
    22                 S.push(p);
    23                 p = p->left;
    24             }
    25             if(S.empty() == false)
    26             {
    27                 p = S.top();
    28                 S.pop();
    29                 if(pre && p->val <= pre->val)return false;
    30                 pre = p;
    31                 p = p->right;
    32             }
    33         }
    34         return true;
    35     }
    36 };

    【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3448413.html

  • 相关阅读:
    小程序运行环境
    在虚拟机系统上安装oracle教程
    Java keywords
    Java bytecode instruction listings
    一个理解JVM的例子2
    一个理解JVM的例子
    JDK的环境变量设置
    JRE、JDK和JVM的关系
    合理的封装实例
    修改源码的几种取巧的方式
  • 原文地址:https://www.cnblogs.com/TenosDoIt/p/3448413.html
Copyright © 2011-2022 走看看