Leetcode-107. Binary Tree Level Order Traversal II

来源:互联网 发布:顺丰机打运单软件 编辑:程序博客网 时间:2024/06/06 17:18

题目

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]
]
输出二叉树层次遍历结果,层次顺序为底层到顶层

思路

在 Leetcode-102. Binary Tree Level Order Traversal的基础上反转结果即可

代码

class Solution {public:    vector<vector<int> > levelOrderBottom(TreeNode* root) {        vector<vector<int> >res;        if(!root)            return res;        queue<TreeNode*> que[2];        int flag = 0;        que[flag].push(root);        while(!que[flag].empty()) {            vector<int> cur;            while(!que[flag].empty()) {                TreeNode* t = que[flag].front();                que[flag].pop();                cur.push_back(t->val);                if(t->left)                    que[(flag+1)%2].push(t->left);                if(t->right)                    que[(flag+1)%2].push(t->right);            }            res.push_back(cur);            flag = (flag+1)%2;        }        for(int i=0, j=res.size()-1; i<j; i++, j--) {            vector<int> t = res[i];            res[i] = res[j];            res[j] = t;        }        return res;    }};
0 0
原创粉丝点击