102. Binary Tree Level Order Traversal
Medium的题开始上强度了,需要看答案才能想出解决方法了。但是看懂答案再去模仿何尝不是一种学习的方法呢
请看题
Example
思路
Medium类型的题目。看答案再想思路。
题目要求使用层次遍历,那么层次遍历需要用到queue。基于这个queue再去想其他的方法。
回到代码上,首先定义了双重vector作为答案返回,其值需在循环中更新。
首先还是熟悉的如果传入的树为空直接返回答案,这一步骤是我刷了好多题后的出来的结论嘿嘿
那么在if的后面就要更上本题的核心代码了,使用一个queue然后直接把树push进去。
开头一个while循环,条件为如果queue不为空就一直循环,进入循环后,先把queue的大小给获取然后再定义一个vector用来表示双重vector中的第二个vector。
根据queue大小来进行层次遍历,也就是熟悉的for循环。进入for循环后,首先要获取到根节点,然后删除queue容器中的根节点。这一步直接决定了层次遍历的基本。
如果获取到的根节点含有左右节点,那么更新quene容器,否则直接往我们的第二个vector中添加答案,因为这个获取的答案是没有左右节点的,是符合层次遍历的条件的。一直循环,直到容器为空结束。
最后要再结束钱push_back()到的我们的最终答案内,进行返回,提交,一气呵成!
Code
1 |
|
Medium题还是有点难度的啊
结束。
102. Binary Tree Level Order Traversal
http://example.com/2024/06/04/102. Binary Tree Level Order Traversal/