关闭

LeetCode:Binary Tree Level Order Traversal II

标签: LeetCodeBinary Tree Level Or
290人阅读 评论(0) 收藏 举报
分类:

Binary Tree Level Order Traversal II

Total Accepted: 60177 Total Submissions: 188407 Difficulty: Easy

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:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<vector<int>> levelOrderBottom(TreeNode* root) {
        vector<vector<int>> ret;
        if(NULL == root) return ret;
        queue<TreeNode *> q[2];  // 队列实现层次遍历,需要两个
        stack<vector<int>> s;  // 保存中间结果
        int cur=0;
        q[cur].push(root);
        while(!q[cur].empty()) {
            vector<int> tmp;
            while(!q[cur].empty()) {
                TreeNode *p = q[cur].front();
                tmp.push_back(p->val);
                if(p->left) q[cur^1].push(p->left);  // 交替入队
                if(p->right) q[cur^1].push(p->right);  
                q[cur].pop();
            }
            cur^=1;
            s.push(tmp);
        }
        while(!s.empty()) {
            ret.push_back(s.top());
            s.pop();
        }
        return ret;
    }
};


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Binary Tree Traversal二叉树遍历方法总结

Binary Tree Traversal二叉树遍历方法总结这里总结的二叉树遍历分为两大类: 深度优先(depth-first traversal) 广度优先(breadth-first traver...
  • jackey_jk
  • jackey_jk
  • 2016-04-01 02:58
  • 769

LeetCode 144 Binary Tree Preorder Traversal(二叉树的前序遍历)+(二叉树、迭代)

翻译给定一个二叉树,返回其前序遍历的节点的值。例如: 给定二叉树为 {1,#, 2, 3} 1 \ 2 / 3 返回 [1, 2, 3]备注:用递归是微不足道的,...
  • NoMasp
  • NoMasp
  • 2016-03-19 16:15
  • 3082

Binary Tree Level Order Traversal II 从底部倒着输出二叉树每一层的元素

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left...
  • chenyx90
  • chenyx90
  • 2016-01-07 13:54
  • 146

Leetcode-Symmetric Tree——判断二叉树是否对称

题目 Symmetric Tree  Total Accepted: 12814 Total Submissions: 40358My Submissions Given a bina...
  • disappearedgod
  • disappearedgod
  • 2014-04-20 01:00
  • 2055

Binary Tree Level Order Traversal II 二叉树层次遍历(广搜,queue)(重重)

题目: 点击打开链接 解答: 上一题采用的深搜+记录深度的fangh
  • skyoceanlover
  • skyoceanlover
  • 2014-08-24 21:55
  • 530

Leetcode全树类问题

Leetcode全树类问题。算法总的来说就是递归(Stack, DFS)和广度优先(Queue, BFS)两种。下面有关二叉树类linked list的题目,若不加特别说明...
  • wangxiaojun911
  • wangxiaojun911
  • 2014-02-04 03:03
  • 8667

LeetCode_将LeetCode中的字符串用例转换成二叉树

最近刷LeetCode题目时总会出现错误时,手动生成用例的情况,于是自己写了一个将
  • loveRooney
  • loveRooney
  • 2014-06-22 15:02
  • 1598

leetcode94 inorderTraversal中序遍历的三种实现

题目很简单二叉树的中序遍历,数据结构的教材上都会有这样的示例代码。其实中序遍历有三种解法: 递归解法(recursive solution) 栈迭代解法(iterative way(stack)) ...
  • hengyishu
  • hengyishu
  • 2015-08-02 10:12
  • 598

把二叉树打印成多行 按之字形顺序打印二叉树 binary tree zigzag level order traversal

把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 import java.util.*; /* public class TreeNod...
  • DuanLiuchang
  • DuanLiuchang
  • 2016-09-12 21:02
  • 368

pat 甲1127. ZigZagging on a Tree (已知后序及中序建树,并层次往返输出)

1127. ZigZagging on a Tree (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 1...
  • qq_27601815
  • qq_27601815
  • 2017-03-05 18:01
  • 830
    个人资料
    • 访问:378937次
    • 积分:6672
    • 等级:
    • 排名:第4148名
    • 原创:318篇
    • 转载:1篇
    • 译文:0篇
    • 评论:34条
    博客专栏
    最新评论