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

深圳网博网站建设营销方案策划

深圳网博网站建设,营销方案策划,开发一个电商平台app要多少钱,网站上有声的文章是怎么做的Day 17 二叉树part 06 530. 二叉搜索树的最小绝对差 看到public int getMinimumDifference(TreeNode root)题目的返回值是int类型,当时我尝试写了一下,rootnull的时候我不知道返回什么,0?-1?似乎都是不行的&#xff…

Day 17 二叉树part 06

530. 二叉搜索树的最小绝对差

看到public int getMinimumDifference(TreeNode root)题目的返回值是int类型,当时我尝试写了一下,root==null的时候我不知道返回什么,0?-1?似乎都是不行的,所以我就定义了traversal,如何把返回的minValue放到全居遍历中,主函数调用traversal之后,return全局变量就可以了

if (root == null) return 0;

注意主函数的判断返回。

 	private TreeNode pre = null;private int minValue = Integer.MAX_VALUE;public int getMinimumDifference(TreeNode root) {if (root == null) return 0;traversal(root);return minValue;}private void traversal(TreeNode root) {if (root == null) return;traversal(root.left);if (pre != null) {int value = root.val - pre.val;minValue = Math.min(minValue, value);}pre = root;traversal(root.right);}

501. 二叉搜索树中的众数

这个众数可以是很多个

只有二叉搜索树的中序遍历才是有序的

可以先遍历一遍二叉树,查询最高出现频率是多少,然后再遍历当前节点和前一节点相等就++,之后等于最高频率的数就收集

很多递归逻辑,要求我们定义的是全局遍历,因为我们一次递归的变量我们是存留不住的,等递归结束了,我们就跳出了。

我们一般树全部遍历一遍,我们就会用到void,如果从树中求单条路径,我们就需要用返回值。

问题:是用集合接收吗?不知道怎么去将集合转化为数组。 直接用集合遍历,然后用数组收集(数组的长度继承list的长度)

 private TreeNode pre = null;private int count = 0;private int maxCount = 0;private List<Integer> list = new ArrayList<>();public int[] findMode(TreeNode root) {traversal(root);int[] result = new int[list.size()];for (int i = 0; i < list.size(); i++) {result[i] = list.get(i);}return result;}public void traversal(TreeNode cur) {if (cur == null) return;traversal(cur.left);//计数和更新分开if (pre == null || pre.val != cur.val) {count = 1; //一开始pre==null初始值为1,发现当前节点值与前一个节点值不相等也是为1} else {count++; //当前节点值与前一个节点值相等就+1}if (maxCount < count) {//当前频率最大的历史的最大频率,就说明之前的是不符合频率最高这一特性,所以我们就替换,重置最大频率,清空list存放最大频率的集合maxCount = count;list.clear();list.add(cur.val);} else if (maxCount == count) {//当前最大频率等于历史最大频率的就收集,说明众数是多个list.add(cur.val);}pre = cur;traversal(cur.right);}

236. 二叉树的最近公共祖先

一定要后序遍历,因为我们需要根据左右返回的结果。

不符合就返回null,符合就把节点返回上去,上面会接收

情况1:p、q互不为最近公共祖先

情况2:p或q为另外一个的最近公共祖先(被包含在一个树中)

public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if (root == null) return root;//root为null,返回的root也就是nullif (root == q || root == p) return root;//因为root为q、或者q,返回root就是返回q、p本身TreeNode left = lowestCommonAncestor(root.left, p, q);TreeNode right = lowestCommonAncestor(root.right, p, q);if (left != null && right != null) return root;//左右返回上来都不为空,所以当前节点就是最小公共祖先if (left != null && right == null) return left;//在p、q都出现在树中时,左不为空,右为空,说明其中一个被包含在p的子节点当中。if (left == null && right != null) return right;//同理,也是如此return null; //left与right都为0的情况}

开头的判断其实可以合并

if (root == q || root == p || root == null) return root;
http://www.dtcms.com/wzjs/180207.html

相关文章:

  • 建一个个人网站足球比赛直播
  • 凡科网站怎么修改山东网站seo推广优化价格
  • 网站推荐界面宁波关键词优化企业网站建设
  • WordPress情侣网站快速排名seo
  • 南戴河区网站建设哪家好提高工作效率总结心得
  • 用系统建购物网站广告策划案优秀案例
  • 广元单页网站制作培训机构推荐
  • 有企业邮箱案例的网站郑州怎么优化网站排名靠前
  • 服务器做的网站 怎么使用搜索引擎优化技术有哪些
  • php 网站配置软文写手接单平台
  • 网站的定位分析网站维护一年一般多少钱?
  • 企业网站版面设计技巧网站联盟广告
  • 做网站要先申请域名吗系统优化大师
  • 动态网站的功能与特点怎么推广网站链接
  • 响应式网站工具互联网营销师教材
  • 北京地产网站建设职业培训网络平台
  • 适用于手机的网站怎么建设做营销型网站哪家好
  • 镇江专业网站制作线上推广平台报价
  • html5移动端网站开发海外广告投放公司
  • 清溪网站建设seo联盟
  • wordpress 企业网站模板百度手机浏览器
  • 海淀公司网站搭建广告投放方案
  • 企业建设网站的目的( )网店seo关键词
  • 可以在线做动图的网站黑帽seo技术培训
  • 济南网站建设泰观网络长沙搜索排名优化公司
  • 做网盟行业网站的图片广告的销售软文营销策划
  • 网站建设的重难点分析长沙网站优化
  • 苏州建设工程网360搜索关键词优化软件
  • asp服装网站源码网络营销软文范文
  • seo外链发布广州网站优化外包