二叉树按层打印(借用queue)

原创 2018年04月17日 21:34:41
/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/

class TreePrinter {
public:
    vector<vector<int> > printTree(TreeNode* root) {
       queue<TreeNode*>q;
        vector<vector<int> >result;
        q.push(root);
       
        while(!q.empty())
        {
          vector<int>m;
        
       //  q.puinsh(root);
            int s=q.size();
            for(int i=0;i<s;i++)
            { 
                TreeNode*p=q.front();
              m.push_back(p->val);
                if(p->left)
                q.push(p->left);
              if(p->right)
                q.push(p->right);
                 q.pop();
            
            }
            result.push_back(m);
        }

  
       return result; 
    }
};

注意queue容器的用法。Push front()

以及queue<listnode*>而不是<listnode>

Python算法实战视频课程--二叉树

-
  • 1970年01月01日 08:00

关于二叉树的按层打印

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

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

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

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

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

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

二叉树3:二叉树按层遍历打印
  • qq_27703417
  • qq_27703417
  • 2017-05-02 22:32:11
  • 888

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

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

二叉树按层遍历打印换行

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

二叉树按层遍历并按层打印和蛇形打印

点:技巧性问题 题意:一个二叉树按层的遍历和按层打印 常见面试题 思路:二叉树按层遍历和打印有很多办法,无外乎各种方式做到按层暂存并暂存该层的下一层节点,这样不停的直到树结尾 ...
  • u010246947
  • u010246947
  • 2017-08-21 14:32:28
  • 1033

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

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

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

/* struct TreeNode {     int val;     struct TreeNode *left;     struct TreeNode *right;     Tr...
  • qq_27466247
  • qq_27466247
  • 2016-04-02 17:21:25
  • 2363
收藏助手
不良信息举报
您举报文章:二叉树按层打印(借用queue)
举报原因:
原因补充:

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