码迷,mamicode.com
首页 > 其他好文 > 详细

Binary Tree Level Order Traversal II

时间:2015-06-20 15:33:52      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

Description:

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]
]

Code:

 1  vector<vector<int>> levelOrderBottom(TreeNode* root) {
 2            deque<TreeNode*>a;
 3        deque<TreeNode*>b;
 4        if (root)
 5             a.push_back(root);
 6         
 7        TreeNode*p = NULL;
 8        vector<vector<int>> result;
 9        
10        while (!a.empty() || !b.empty())
11        {
12            vector<int>temp;
13            if (!a.empty() )
14            {
15                 while (!a.empty() )
16                 {
17                p = a.front();
18                a.pop_front();
19                temp.push_back(p->val);
20                if (p->left)
21                     b.push_back(p->left);
22                 if (p->right)
23                     b.push_back(p->right);
24                 }
25                 result.push_back(temp);
26            }
27            else
28            {
29             while (!b.empty())
30            {
31                p = b.front();
32                b.pop_front();
33                temp.push_back(p->val);
34                if (p->left)
35                     a.push_back(p->left);
36                if (p->right)
37                     a.push_back(p->right);
38            }
39            result.push_back(temp);
40            }
41        }
42        reverse(result.begin(),result.end());
43        return result;  
44     }

 

Binary Tree Level Order Traversal II

标签:

原文地址:http://www.cnblogs.com/happygirl-zjj/p/4590606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!