[树先序遍历]LeetCode515. Find Largest Value in Each Tree Row


寻找二叉树每层的最大值,递归先序遍历的方法实现,利用一个vector保存每层的最大值。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
    vector<int> vecRecordMax;
public:
    void findMAX(TreeNode* now, int level) {
        if(now == NULL)
            return;
        if(vecRecordMax.size() <= level) { //no record
            vecRecordMax.push_back(now->val);
        } else {
            if(now->val > vecRecordMax[level])
                vecRecordMax[level] = now->val;
        }
        
        findMAX(now->left, level + 1);
        findMAX(now->right, level + 1);
    }
    vector<int> largestValues(TreeNode* root) {
        findMAX(root, 0);
        return vecRecordMax;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 4,509评论 1 31
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,225评论 0 12
  • 什么是二叉树? 引用自百度百科:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(...
    AnICoo1阅读 1,400评论 0 1
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 4,351评论 1 5
  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 2,377评论 0 3