热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作文以记之~验证二叉搜索树

作文以记之~验证二叉搜索树0、前言1、题目描述2、解题思路2.1方法1~利用DFS2.1.1思路2.1.2程序代码2.2方法2~利用迭代2.2.1思路2.1.2程序代码0、前言本

作文以记之 ~ 验证二叉搜索树

  • 0、前言
  • 1、题目描述
  • 2、解题思路
    • 2.1 方法1 ~ 利用DFS
      • 2.1.1 思路
      • 2.1.2 程序代码
    • 2.2 方法2 ~ 利用迭代
      • 2.2.1 思路
      • 2.1.2 程序代码


0、前言

本篇博客是力扣上 98. 验证二叉搜索树 题的题解,也是一个 DFS 的练习题,只要按照DFS的逻辑来,整个coding过程不难,挺有意思的~

GitHub上相关内容可 点击此处 进行查看!

1、题目描述

在这里插入图片描述

2、解题思路

2.1 方法1 ~ 利用DFS


2.1.1 思路

只要所给二叉树不满足以下条件,则不为二叉搜索树,故而可以按照以下条件设置合理判断即可!
如果该二叉树的左子树不为空,则左子树上所有节点的值均小于它的根节点的值; 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;它的左右子树也为二叉搜索树。

2.1.2 程序代码

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isValidTree(TreeNode* root, long minval, long maxval){if(root &#61;&#61; nullptr)return true;if(root->val >&#61; maxval || root->val <&#61; minval)return false;return isValidTree(root->left,minval,root->val) && isValidTree(root->right,root->val,maxval);}bool isValidBST(TreeNode* root) {return isValidTree(root,LONG_MIN,LONG_MAX);}
};

2.2 方法2 ~ 利用迭代


2.2.1 思路

此处思路就是将上面方法的递归给展开实现&#xff0c;具体看代码吧

2.1.2 程序代码

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool isValidBST(TreeNode* root) {stack<TreeNode*> st;long minval &#61; LONG_MIN;while(!st.empty() || root !&#61; nullptr){while(root){st.push(root);root &#61; root->left;}root &#61; st.top();st.pop();if(root->val <&#61; minval)return false;minval &#61; root->val;root &#61; root->right;}return true;}
};


推荐阅读
author-avatar
Min2502857657_377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有