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

原创 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;
    }
};


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

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

从上往下打印出二叉树的每个节点,同层节点从左至右打印 利用一个双端队列来实现会比较简便。将双端队列第一个元素的左右节点插入到队列末尾,并且同时打印头节点并弹出,循环既可以实现一个按层打印二叉树的过程...
  • zyn2609530
  • zyn2609530
  • 2016年07月18日 10:05
  • 432

关于二叉树的按层打印

本文的思路来自于牛客网左程云大大的二叉树视频 视频地址 http://www.nowcoder.com/courses/1/1/1 题目要求如下: 至于如何找大家看视频吧,左老大讲的比我清...
  • dlf123321
  • dlf123321
  • 2016年09月04日 21:58
  • 1114

二叉树按层遍历打印的算法(c/c++)

void LevelOrder(BTree T, int cnt) { BTree level = malloc(sizeof(struct BTNode)*cnt); if(leve...
  • zhuisui8
  • zhuisui8
  • 2016年10月30日 16:15
  • 169

去哪网笔试 按层打印二叉树 Java实现

题目描述 给定一棵二叉树的前序(根、左、右)和中序(左、根、右)的打印结果,输出此二叉树按层(从左往右)打印结果。例如一棵二叉树前序:1 2 4 5 3;中序:4 2 5 1 3。可以构建出...
  • ZHANG_980
  • ZHANG_980
  • 2017年04月01日 21:50
  • 871

二叉树3:二叉树按层遍历打印

二叉树3:二叉树按层遍历打印
  • qq_27703417
  • qq_27703417
  • 2017年05月02日 22:32
  • 569

二叉树按层遍历打印换行

我们都知道,广度优先遍历——对二叉树来说就是按层遍历,需要借助队列。代码也很简单,就几行。但是为什么要借助队列呢? 粗鲁分析: 二叉树的按层遍历是这样:从左到右,从上到下访问每个节点。 而二叉树本...
  • u010292561
  • u010292561
  • 2017年08月24日 10:18
  • 161

按层次打印二叉树元素

非常简单: #include #include using namespace std; struct Node { Node* left; Node* right; int v...
  • bobten2008
  • bobten2008
  • 2013年08月04日 15:48
  • 2190

数据结构与算法分析笔记与总结(java实现)--二叉树3:二叉树按层遍历打印练习

数据结构与算法分析笔记与总结(java实现)--二叉树3:二叉树按层遍历打印练习...
  • qq_27703417
  • qq_27703417
  • 2017年02月15日 17:28
  • 777

leetcode | 按层访问一棵二叉树 | Python

题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left ...
  • u012560212
  • u012560212
  • 2017年06月14日 15:34
  • 289

算法实现-二叉树的按层打印

题目: 有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左...
  • derek_liuxuedong
  • derek_liuxuedong
  • 2017年06月07日 19:21
  • 419
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】二叉树按层打印
举报原因:
原因补充:

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