zoukankan      html  css  js  c++  java
  • 1302. 层数最深叶子节点的和

    给你一棵二叉树,请你返回层数最深的叶子节点的和。

    示例:

    输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
    输出:15

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/deepest-leaves-sum
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解答:由102题思路对二叉树进行层次遍历,遍历得到的数组最后一个元素的和即为结果。但是这种如果树很高的话,耗时会很高。先附上代码

    /**
     * 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 {
    public:
       vector<vector<int>> levelOrder(TreeNode* root){
           vector<vector<int>> res;
           if(!root) return res;
           queue<TreeNode*> qu;
           qu.push(root);
           while(!qu.empty()){
               vector<int> tmp;
               int len=qu.size();
               for(int i=0;i<len;++i){
                   TreeNode *node=qu.front();
                   tmp.push_back(node->val);
                   qu.pop();
                   if(node->left) qu.push(node->left);
                   if(node->right) qu.push(node->right);
               }
               res.push_back(tmp);
           }
           return res;
       }
        int deepestLeavesSum(TreeNode* root) {
            int sum=0;
            vector<vector<int>> ans1=levelOrder(root);
            int len1=ans1.size();
            vector<int> ans=ans1[len1-1];
            int len=ans.size();
            for(int i=0;i<len;++i){
              sum+=ans[i];
            }
            return sum;
        }
    };
  • 相关阅读:
    图象处理算法(一)
    使用自定义类实现工程多语言
    SQL的数据类型
    SQL LEFT JOIN
    TADOCommand
    如何获得活动的数据
    TDateTime
    类定义(一)
    mxOutlookBar组件安装和使用
    TADOQuery
  • 原文地址:https://www.cnblogs.com/Makerr/p/12170083.html
Copyright © 2011-2022 走看看