【刷题之路】二叉树按层打印

原创 2016年05月30日 21:05:01

按层打印,换层换行

class TreePrinter {
public:
    vector<vector<int> > printTree(TreeNode* root) {
        // write code here
        TreeNode* last;
        TreeNode* nlast;
        vector<int> temp; //用于保存每一层的值
        queue<TreeNode*> tmp; //用于保存遍历的树节点
        vector<vector<int> > res;
        last=root;
        nlast=root;
        tmp.push(root);
        while(!tmp.empty()){
            last=tmp.front(); //last为队列的头,即为遍历的节点
            tmp.pop();
            temp.push_back(last->val);
            if(last->left) tmp.push(last->left); //将当前遍历的节点的左右子节点放入队列中
            if(last->right) tmp.push(last->right);   
            if(last==nlast){
                nlast=tmp.back(); //当last==nlast,下一层的所有节点必然已经全部放入队列中,于是让nlast=tmp的末尾,即为下一行的最后一个节点
                res.push_back(temp);
                temp.clear();
            }     
        }
        return res;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

LintCode刷题之路---二叉树的路径

给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 例: 给定一个二叉树,和 目标值 = 5: 1 / \ ...

二叉树(Binary tree)--算法学习之路(一)

二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。   二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i...

java学习之路----java类库----Arrays对对象的排序---二叉树实现原理

对于数组的排序或许你很了解,但是你对对象数组了解吗?对二叉树实现原理了解吗?对比较器了解吗?如果不,可以来看看。。。。。...

我的软考之路(四)——数据结构与算法(2)之树与二叉树

上篇博文主要介绍的是数据结构的线性结构,我们这篇博文介绍非线性结构—树与二叉树,我先介绍树的一些基本概念,树的遍历,再介绍二叉树相关概念和特性,以及二叉树的遍历,最后再树与二叉树的对比,总结。    ...

Swift 算法实战之路:二叉树

原文出处: 故胤道长(@故胤道长)      之前我们探索了数组、字典、字符串、链表、栈、队列的处理和应用。今天我们来讲讲平常相对很少用到,面试中却是老面孔的数据结构:二叉树。本期...

牛客网刷题之按之字形顺序打印二叉树

题目描述:解题思路:  这基本是层遍历的思路。但不同的是:由于需要按照之字形打印每一层,所以在打印每一行之前需要判断上一行打印的顺序。如果上一行打印的顺序使从左到右,那么下一行的打印顺序应该是从右到左...

《剑指offer》刷题笔记(举例让抽象具体化):从上往下打印二叉树

《剑指offer》刷题笔记(举例让抽象具体化):从上往下打印二叉树 转载请注明作者和出处:http://blog.csdn.net/u011475210 代码地址:https://github.com...

剑指offer刷题之java实现的从上往下打印二叉树

package mine; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** ...

牛客网刷题之把二叉树打印成多行

题目描述:解题思路:这题和前面之字形打印那题类似,不同的是,判断到达每一层重点时只需要换行即可。同样可以用start和end两个代表每一行的起始与终止。其他就是树的遍历问题了。题解:ArrayList...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】二叉树按层打印
举报原因:
原因补充:

(最多只允许输入30个字)