只记得层序遍历需要用队列这种数据结构,但是记不清把每层数据放进去后如何判断每层的个数并取出来记不太清晰,主要思路是new一个int值来记录这一层的数量,知道这个数量后按数量遍历取队列的数据,就可以在记录这个数据的同时往队列中塞入这个节点非空情况下的左右子节点,直至把该层的数据取完,并把下层的数据完成插入,这时进入下一层循环,计算队列的size,并根绝size遍历该层的数据同时。。。
这道题虽然做过但是完全没思路,只知道左右节点要交换,但是怎样才能实现交换没想起来,其实就跟两数交换一样的方法,找个tem记录某值再进行交换,遇到二叉树的题首先想好用什么遍历方式,如果是递归的话然后再想清楚递归的三部曲,1确定返回值类型和参数,2、确定终止条件,3、中间的核心逻辑
这道题也是没啥思路,只知道最左边和最右边要相等,里面的也要相等,但是要使用那种遍历方式不太清晰,这道题的核心思想就是,当查到子树对称是,才会判断父节点是否对称,这样一层层的判断,父节点的判断之前要收集子节点的对称信息,遇到这样的情况需要进行后续遍历。自己也型到了层序遍历,就是统计完树各层的信息后,再遍历list各层的数据是否对称,但是这种方法超时了,但是官方通过将父节点放进队列两次实现了用层序遍历来解决