首页 > 其他分享 >每日一结

每日一结

时间:2022-10-03 10:22:54浏览次数:53  
标签:Offer 队列 每日 一棵树 子结构 一结 二叉树 节点

剑指 Offer 26. 树的子结构

判断一棵树是否是另一棵树的子结构,注意子结构与子树的区别
子结构不能只利用根节点进行对称性递归,需要构造辅助函数,判断当两棵树根节点值相同时一棵树是否为另一棵树子结构。
注意在辅助函数中,判断子树的异同时,需要用&&;


剑指 Offer 32 - I. 从上到下打印二叉树

二叉树的层次遍历,用一个队列存储每层的节点。
取出当前节点的val加入到ans中,同时将其左右子节点(如果有)加入到队列中。(取节点用poll())


剑指 Offer 32 - II. 从上到下打印二叉树 II

此题,异于上一题的点,在于每层单独列出来。
依旧同上一道题一般,将节点加入到队列中。
不同的是,当前只加入的val和当前节点的左右子节点,需要有限制。
那么只需要对出队的节点的个数限制即可。
用一个for()循环即可解决。
用for循环来取出当前层需要的节点。


剑指 Offer 32 - III. 从上到下打印二叉树 III

此题异于上一道题的点,在于,第一层从左到右,第二层从右到左。
那么只需要将记录当前层的容器,改成一个队列,控制val进入的顺序,再设置一个boolean标志即可。
需要注意的是,在加入答案的时候,将存储当前层的队列转换为List即可(new ArrayList<>(cur))。

标签:Offer,队列,每日,一棵树,子结构,一结,二叉树,节点
From: https://www.cnblogs.com/xtag/p/16750104.html

相关文章

  • 每日一结
    剑指Offer25.合并两个排序的链表怎么说,忘记了移动过额外设计的链表的指针。剑指Offer24.反转链表剑指Offer21.调整数组顺序使奇数位于偶数前面开辟一个新数......
  • C语言每日一题——第六天
    第六天小明想了想,发现他已经写过数个用于计算日期的程序了。今天他决定更进一步,要实现一个可以计算两个日期实际相差天数的代码。另外,为了方便,不考虑闰年情况。运行:main.......
  • 每日一结
    剑指Offer12.矩阵中的路径本题问,给定的二维数组中是否有按顺序出现的指定字符串。注意:1、遍历所有位置依次调用函数。函数可以完成在当前位置作为起点的情况下,实现......
  • C语言每日一题——第五天
    第五天今天小明觉得自己又可以了!于是他决定继续实现游戏开发,这次从玩家行为控制入手。在长度无限、宽度为9的地图场景中,我们可以控制角色向左右移动,移动后会留下轨迹,该轨......
  • C语言每日一题——第四天
    第四天小明这两天写代码有些累。。他差点忘记了9月30日的下一天是十月一日……于是决定写一个程序告诉他每个月有多少天。执行:main.exeA输出:31输入程序通过命令行......
  • 每日一结
    剑指Offer03.数组中重复的数字建立一个HashMap,键为当前数字;值为当前数字出现的次数。map.put(nums[i],map.getOrDefault(nums[i],0)+1);最后遍历一遍数组,值不为1......
  • 每日一结
    5.最长回文子串本题,需要求出给定字符串中的最长回文子串。解题思路,既然要求最长,就设置一个len来记录最长字串,初始化为1。采用扩散的方法,设置一个left和right,以及maxsta......
  • C语言每日一题——第三天
    第三天完成了给朋友的礼物和自己的小想法,小明觉得这两天的学习非常成功!他决定去开发一个小游戏。在一阵开发之后……他遇到了难题——如何为生成“随机数”?尽管操作系统......
  • C语言每日一题——第二天
    第二天题目小明在完成给朋友统计生日的代码之后,想起来他好像看到过有一个数学公式是用于计算某年某月某日是星期几。当然了,他不会无聊到用这个程序计算超过700年前的星期......
  • 每日一结
    回文子串是要连续的,回文子序列可不是连续的516.最长回文子序列解决本题一个很妙的做法就是,设置一个二维数组,行为给定字符串的最后一位,列每次的起始值为行+1。这样做的......