LeetCode Binary Tree Level Order Traversal II

来源:互联网 发布:洛阳软件开发公司 编辑:程序博客网 时间:2024/06/06 23: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,#,#,15,7},

    3   / \  9  20    /  \   15   7

return its bottom-up level order traversal as:

[  [15,7],  [9,20],  [3]]

层序遍历,反向输出结果(自底向上)。

bfs,然后反转结果即可。

 

代码:

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:struct nd//探测用点{TreeNode *tn;//位置int deep;//深度nd(TreeNode *t=NULL,int d=0):tn(t),deep(d){}};    vector<vector<int> > levelOrderBottom(TreeNode *root) {        vector<vector<int>> ret;//返回值deque<nd> queue(1,nd(root));//队列while(!queue.empty())//bfs{if(queue.front().tn!=NULL){if(queue.front().deep>=ret.size())ret.push_back(vector<int>(0,0));ret[queue.front().deep].push_back(queue.front().tn->val);queue.push_back(nd(queue.front().tn->left,queue.front().deep+1));queue.push_back(nd(queue.front().tn->right,queue.front().deep+1));}queue.pop_front();}reverse(ret.begin(),ret.end());//反转return ret;    }};


 

 

 

 

0 0