美文网首页
107. Binary Tree Level Order Tra

107. Binary Tree Level Order Tra

作者: juexin | 来源:发表于2017-01-07 14:08 被阅读0次

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
    For example:Given binary tree[3,9,20,null,null,15,7],
        3
        / \
       9  20
          / \
        15  7

    return its bottom-up level order traversal as:
    [ [15,7], [9,20], [3] ]

    class Solution {
    public:
        vector<vector<int>> levelOrderBottom(TreeNode* root) {
             vector<vector<int>> arr;
            if(root==NULL)
              return arr;
            queue<TreeNode *> q;
            q.push(root);
            while(!q.empty())
            {
                int i = 0;
                int height = q.size();
                vector<int> c;
                while(i++<height)
                {
                    TreeNode* t = q.front();
                    q.pop();
                    c.push_back(t->val);
                    if(t->left)
                      q.push(t->left);
                    if(t->right)
                      q.push(t->right);
                }
                arr.push_back(c);
            }
            int n = arr.size();
            for(int i=0;i<n/2;i++)
            {
                vector<int> temp = arr[i];
                arr[i] = arr[n-1-i];
                arr[n-1-i] = temp;
            }
            return arr;
        }
    };
    

    相关文章

      网友评论

          本文标题:107. Binary Tree Level Order Tra

          本文链接:https://www.haomeiwen.com/subject/wmdfbttx.html