Tree find-largest-value-in-each-tree-row

rt,代码如下:

  //Definition for singly-linked list.
  struct ListNode {
      int val;
      ListNode *next;
      ListNode(int x) : val(x), next(NULL) {}
 };

void travelTree(TreeNode* root){
        queue<TreeNode*> q;
        q.push(root);

        while(q.size()){
            TreeNode *r = q.front(); q.pop();
            if(r->left) {
                q.push(r->left);
            }
          
            if(r->right){
                q.push(r->right);
            }
        }
}

leetcode 上相关的题目:
https://leetcode.com/problems/find-largest-value-in-each-tree-row/#/solutions

class Solution {
public:
    vector<int> findValueMostElement(TreeNode* root) {
        if(root == nullptr) return {};
        queue<TreeNode*> q;
        queue<int> level;
        
        q.push(root);
        level.push(0);
        vector<int> mac;
        
        int m=-1;
        while(q.size()){
            TreeNode *r = q.front(); q.pop();
            int l = level.front(); level.pop();
            if(r->left) {
                q.push(r->left);
                level.push(l+1);
            }
            
            if(r->right){
                q.push(r->right);
                level.push(l+1);
            }
            
            if(l > m){
                m = l;
                mac.push_back(r->val);
            } else {
                mac[l] = std::max(mac[l], r->val);
            }
        }
        
        return mac;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 在那遥远的地方有一个王国,那里的人民都安居乐业,快乐生活着。不知在那一天,他,出生了。他就是国王的儿子――哈奇。 ...
    呵米阅读 165评论 0 1
  • 年少成名,以文采著世,在战火纷飞之际,却能披甲上阵,保一方平安。
    鹿啊秀阅读 235评论 0 2