Tree——Find Largest Value in Each Tree Row

    xiaoxiao2021-03-25  83

    问题描述:

    你需要在二叉树的每一行中找到最大值,并将所有的最大值放在vector中作为返回值。

    解题思路:

    从根节点开始,依次将每一层的节点从左到右放入vector,current指向当前访问的节点,last指向当前层的最后一个节点。然后把每一层的所有节点值放入一个vector,访问当前层结束后,找出最大的元素放入result中。

    源代码如下:

    class Solution {

    public:     vector<int> largestValues(TreeNode* root) {         vector<int> result;         if(root!=NULL)         {             vector<TreeNode* > vec;             vec.push_back(root);             int current=0;             int last=1;             while(current<vec.size())             {                 last=vec.size();                 vector<int> vals;                 for(;current<last;current++)                 {                     vals.push_back(vec[current]->val);                     if(vec[current]->left!=NULL) vec.push_back(vec[current]->left);                     if(vec[current]->right!=NULL) vec.push_back(vec[current]->right);                 }                 int max=vals[0];                 for(int i=1;i<vals.size();i++)                 {                     if(vals[i]>max) max=vals[i];                 }                 result.push_back(max);             }         }         return result;     } };
    转载请注明原文地址: https://ju.6miu.com/read-32537.html

    最新回复(0)