栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

手写代码:求二叉树每层最大值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

手写代码:求二叉树每层最大值

参考回答:

思路:遍历树,给树的每一个节点赋予层数的信息,定义一个数组maxNum数组,存储每层中最大值,其下标i对应于树中的第i层,其中根节点为第0层。在遍历某个树节点时,先判断该节点的层数与当前数组中已存储的数是否相等,若相等,则将该节点值与当前数组最后一位值进行比较,数组取其中的最大值。若不相等,则该节点为该层第一个节点,直接将该节点值赋值给数组对应的位。深度遍历该二叉树,最后输出这个数组即可。

class Solution {public:vector<int> largestValues(TreeNode* root) {if(root == NULL) {return maxNum;}travel(root,level);return maxNum;}TreeNode* travel(TreeNode* root, int level) {if(!root) return NULL;if(maxNum.size() < level + 1) {maxNum.push_back(root->val);} else {maxNum[level] = max(root->val,maxNum[level]);}travel(root->left,level+1);travel(root->right,level+1);return root;}private:int level = 0;vector<int> maxNum;};

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/364536.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号