代码随想录训练营Day16:104二叉树最大深度、111二叉树最小深度、222、完全二叉树的节点个数

1.二叉树的最大深度代码随想录 (programmercarl.com)

 

        1.深度与高度的区别:高度是该节点到叶子节点的距离,从下向上计数,用后序遍历,深度是根节点到该节点的距离,从上往下计数,用的是前序遍历。

        2.对于递归的一点小理解:在本题中,首先从最底层开始,触发了终止条件,return 0然后返回给上一级,这是第一步,然后再依次向上处理,体现了递归的自下而上的处理方式,这里最重要的点还在于要把终止条件以及其返回值确定好,这是第一步。

 

        3.在n叉数的最大深度中相当于把比较左右子树的大小变成了比较所有子树的大小,要学会在一族数中取最大值的操作。即用for循环中加一个max函数。

2.二叉树的最小深度:代码随想录 (programmercarl.com)

        1.要注意本题和最大深度的区别,虽然都是后续遍历,但是这里要考虑根节点左右子树一个为null一个不为null的情况,分别做讨论。

3.完全二叉树的节点个数代码随想录 (programmercarl.com)

 

        1.由于完全二叉树的特性,若一个节点的最左侧子树深度等于其最右侧子树深度的话,那此节点下的子树一定是满二叉树。

         2.在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。<< 即为左移运算符(在c++中用左移运算符对于2的n次方更加方便)

        3.本题有两个终止条件的判断:1、节点若为null,则返回0;节点若为满二叉树,则返回此二叉树所有的节点个数(注意:最后的叶子节点也是满二叉树,所以可以一直向后遍历,直到找到满二叉树,故节点是否为满二叉树能够成为终止条件。)

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值