[LeetCode] 107. Binary Tree Level Order Traversal II

来源:互联网 发布:泰国香米 知乎 编辑:程序博客网 时间:2024/06/08 19:19
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) {        if (root == nullptr) return {};        deque<vector<int>> levels;        vector<int> level;        queue<TreeNode *> q;        q.push(root);        q.push(nullptr);        while (!q.empty()) {            TreeNode *ptn = q.front();            q.pop();            if (ptn == nullptr) {                levels.push_front(level);                level.clear();                if (!q.empty()) q.push(nullptr);                continue;            }            level.push_back(ptn->val);            if (ptn->left != nullptr)                q.push(ptn->left);            if (ptn->right != nullptr)                q.push(ptn->right);        }        return vector<vector<int>>(levels.begin(), levels.end());    }};

这里写图片描述

阅读全文
0 0
原创粉丝点击