zoukankan      html  css  js  c++  java
  • 刷题98. Validate Binary Search Tree

    一、题目说明

    题目98. Validate Binary Search Tree,给一个二叉树,判断是否是二叉搜索树。题目难度是Medium!

    二、我的解答

    这个题目,学过数据结构,会二叉树的中序遍历,不是很难。代码如下:

    class Solution{
    	public:
    		//中序遍历 
    		bool isValidBST(TreeNode* root){
    			stack<TreeNode*> st;
    			TreeNode* p = root,*pre = NULL;
    			if(p != NULL){
    				while(p!=NULL){
    					st.push(p);
    					p = p->left;
    				}
    				while(! st.empty()){
    					p = st.top();
    					st.pop();
    					
    					if(pre!=NULL && pre->val>=p->val){
    						return false;
    					}
    					pre = p;
    					
    					p = p->right;
    					while(p !=NULL){
    						st.push(p);
    						p = p->left;
    					}	
    				}
    			}
    			return true;
    		}
    };
    

    性能如下:

    Runtime: 16 ms, faster than 65.34% of C++ online submissions for Validate Binary Search Tree.
    Memory Usage: 20.6 MB, less than 91.67% of C++ online submissions for Validate Binary Search Tree.
    

    三、优化措施

    上面是非递归算法,递归更简单,就不写了。

    所有文章,坚持原创。如有转载,敬请标注出处。
  • 相关阅读:
    linux下yum无法使用
    判断某个网卡是否是dhcp获取的ip
    个人作业---词频统计
    第四周读书笔记
    设计关键词
    好文收藏
    Apritag角点代码检测
    处理txt文件,保存为yml和cal文件
    欧拉角欧拉矩阵
    Mysql笔记01-安装和SQL基础
  • 原文地址:https://www.cnblogs.com/siweihz/p/12264908.html
Copyright © 2011-2022 走看看