二叉树行最大值
【题目描述】
您需要在二叉树的每一行中找到最大的值。
样例输入:
1 / \ 3 2 / \ \ 5 3 9
输出: [1, 3, 9] (题解)
【解题思路】
1: 广度优先遍历:即层次遍历, 借用队列先进先出特点, 将二叉树根节点存入队列中, 若队列非空 则重复
-
队头元素出队并访问该元素
-
若该节点的左孩子非空, 则将该节点的左孩子节点指针入队
-
若该节点的右孩子非空, 则将该节点的右孩子节点指针入队
而求每行最大值,存入队列时就将每行之间用特殊标记隔开,遍历输出时根据标记划分每行,每行假设第一个数
为该行最大值max,若该行后面有输出值更大的,更改 max 值即可
【queue操作补充】
定义一个queue变量:queue<Type> que
查看该队列是否为空:que.empty() 为空则返回true,否则返回false
将元素增加到队列尾:que.push(parameter)
返回队列中拥有的元素个数:que.size()
返回队列中队首元素:que.fr