当前位置: 首页 > news >正文

青岛网站制作企业网站的服务内容

青岛网站制作企业,网站的服务内容,做自己的网站多少钱,猎头公司主要做什么文章目录 题目方法一#xff1a;BFS 层序遍历方法二#xff1a; 递归方法三#xff1a; 中序遍历#xff08;栈#xff09;方法四#xff1a; 中序遍历#xff08;递归#xff09; 题目 思路就是首先得知道什么是二叉搜索树 左孩子在#xff08;父节点的最小值#x… 文章目录 题目方法一BFS 层序遍历方法二 递归方法三 中序遍历栈方法四 中序遍历递归 题目 思路就是首先得知道什么是二叉搜索树 左孩子在父节点的最小值父节点区间内 右孩子在父节点父节点的最大值区间内 只要满足这两点就行 方法一BFS 层序遍历 利用层序遍历 拿到每一个节点 并且给每一个结点配备一个最大值和最小值的队列 只要节点在最大值和最小值之间就满足二叉搜索树的条件 public boolean isValidBST(TreeNode root) {if(root null) return true;QueueTreeNode queue new LinkedList();QueueLong minValues new LinkedList();//定义两个队列来记录每一个节点的最大值和最小值情况 QueueLong maxValues new LinkedList();queue.offer(root);minValues.offer(Long.MIN_VALUE); // 初始最小值为maxValues.offer(Long.MAX_VALUE); // 初始最大值为while(!queue.isEmpty()){int count queue.size();for(int i 0 ; i count ; i){TreeNode node queue.poll();Long minValue minValues.poll();//弹出该对比节点的最大值和最小值情况 节点值必须在这个区间内才满足条件Long maxValue maxValues.poll();if ( node.val minValue || node.val maxValue) {return false;}if(node.left ! null){queue.offer(node.left);minValues.offer(minValue);// 左子树的最小值沿用上一次的最小值maxValues.offer((long)node.val); // 左子树的最大值为当前节点值}if(node.right ! null){queue.offer(node.right);minValues.offer((long)node.val); // 右子树的最小值为当前节点值maxValues.offer(maxValue); // 右子树的最大值沿用上一次的最大值}}}return true;}方法二 递归 // root.val要在 min,max 区间才是二叉搜索数// 判断左子树 和右子树是否是搜索二叉树 // 左孩子在父节点的最小值父节点区间内// 右孩子在父节点父节点的最大值区间内public boolean isValidBST(TreeNode root) {return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE); // 不能用Integer.MAX 2147483647 案例有root就等于2147483647 明显不满足搜索树}public boolean isValidBST(TreeNode root,long min,long max) {if(root null ){return true;}if(root.val min || root.val max) return false;//root.val要在 min,max 区间才是二叉搜索数return isValidBST(root.left,min,root.val)isValidBST(root.right,root.val,max);//判断左子树 和右子树是否是搜索二叉树 // 左孩子在父节点的最小值父节点区间内// 右孩子在父节点父节点的最大值区间内}方法三 中序遍历栈 核心先遍历左子树直到左子树为null 再去遍历右子树直到右子树为null每弹出一个节点的值小于等于前一个 inorder说明不是二叉搜索树在遍历右子树的同时 更新inorder值为当前节点 public boolean isValidBST(TreeNode root) {DequeTreeNode stack new LinkedListTreeNode();//栈Long inorder Long.MIN_VALUE;while(!stack.isEmpty() || root !null){while(root ! null){//先去遍历左子树stack.push(root);root root.left;}root stack.pop();// 如果中序遍历得到的节点的值小于等于前一个 inorder说明不是二叉搜索树if(root.val inorder) return false;inorder (long)root.val;root root.right;//遍历右子树}return true;}方法四 中序遍历递归 中序遍历时判断当前节点是否大于中序遍历的前一个节点如果大于说明满足 BST继续遍历否则直接返回 false。 long pre Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {if(root null) return true;//判断左子树是不是 二叉搜索时if(!isValidBST(root.left)) return false;if(root.val pre) return false ;else pre root.val;//判断右子树是不是 二叉搜索时if(!isValidBST(root.right)) return false;return true;}
http://www.dnsts.com.cn/news/155811.html

相关文章:

  • 做啥类型网站手机ps软件如何做ppt下载网站
  • 境外公司在国内建网站怎么制作网页页面
  • 东凤镇 网站建设哪里有网站建设企业
  • 国内最开放的浏览器seo技术外包 乐云践新专家
  • 新乡建设工程信息网站WordPress更改网站地址
  • 基于jsp的精品课程网站建设北京企业网络推广外包
  • 制作网页的模板的网站协会网站建设哪里实惠
  • 网站建设基本流程详细说明哪个企业的网站做的比较好
  • o2o网站建设信息ui设计一般要学多久
  • 阿里云备案增加网站高端公司小程序建设
  • 公司网站维护怎么弄贵阳广告公司排名
  • 摄影个人网站模板营销技巧美剧第一季在线
  • 手机网站APP网络推广商城网站数据库设计工具
  • 网站充值怎么做的企业天眼查询
  • 工伤保险网站建设工程有限公司网站
  • 西安市城乡建设管理局网站的公示栏房地产开发公司属于什么企业
  • 西安手机网站制作公司注册国外网站用什么邮箱
  • 亳州有做网站的吗外贸行业网站推广
  • 电子商务网站建设课设微信怎么设计分享网站
  • 网站推广的企业离石做网站的公司
  • 杭州网站设计优异柚v米科技爱站网备案查询
  • 免费建站宝盒附近最近的广告公司
  • 网站业务流程设计微信小程序分销功能
  • 分类信息网站推广的意义黄岛王台有做网站的吗
  • 网站设计的一般流程是什么网络安全企业
  • 番禺网站建设培训学校wordpress 输出json
  • 在哪查找网站的建设者北京最大网站建设公司排名
  • o2o网站开发框架做图网站有哪些
  • 贵阳网站建设q.479185700棒东营建设信息网最新招聘
  • 东莞定制网站建设新人做外贸怎么找国外客户