代码随想录算法训练营第十五天| 层序遍历 226.翻转二叉树 101.对称二叉树

1. 层序遍历

注意每次while loop里固定一个size,只把size个元素放入res,用来分层

注意 if(node -> left){}这一步,不然left可能是null

2. 连刷十道题

总套路:

                           

        107.  

        翻转正常层序遍历就行,用 reverse(levelOrder.begin(), levelOrder.end());

        复习day6的一个点:转化vector可以用下面这种方法,map和deque都可以用

        return vector<int>(result_set.begin(), result_set.end());

        vector<vector<int>>(result.begin(), result.end());

        199.

        记好基础逻辑,加上新的、只记录每行最后一个元素逻辑就行

        637. 二叉树的层平均值

        这种涉及double的题要格外小心,能在最开始declare variable的时候设成double就直接double,一个是之后运算的时候不用cast,一个是只设置为int可能会溢出         

        

429. 见总套路,记住套路一遍过

515. 记住套路一遍过

116. 用现在的front() 指向pop后的front()就行

if(i < size - 1) node -> next = que.front();

 117. 和116一样

104. level traverse记录level即可

111. 这道题和104都有两种写的方法,level traverse或者递归遍历,递归遍历以后练

注意标注出来的地方,只break的话只能break出inner while loop,直接return就行

226. 正常recursion,前序后序都行,注意swap(a, b)这种用法

101. 内层和外层的思想要记好

用后序遍历是因为要收集分支的情况才能进行判断

这道题其实每次recursion return的是两个节点的状况(且这两个节点在中线两侧)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值