美文网首页
35. 把二叉树打印成多行(思路待补充)

35. 把二叉树打印成多行(思路待补充)

作者: HamletSunS | 来源:发表于2019-08-06 12:16 被阅读0次

题目:
把二叉树打印成多行,按层分行
思路:

  • 层序遍历,使用队列
  • 每次入队记录一下当前的层号,考虑到vector是基0,不妨从0层开始计数,这样存数据时比较方便,否则会发生level-1的尴尬

待补充:
本题好像还有许多思路,比如书本上的计数法,左神的两个指针指示换行,我还没有理解,需要之后巩固

class Solution {
public:
        vector<vector<int> > Print(TreeNode* root) {
            ret.clear();
            if(!root)
                return ret;
            queue<pair<int,TreeNode *>> qu;
            qu.push(make_pair(0,root));
            while(!qu.empty()){
                int level=qu.front().first;
                TreeNode *node=qu.front().second;
                qu.pop();
                if(ret.size()==level)
                    ret.push_back(vector<int>());
                ret[level].push_back(node->val);
                if(node->left)
                    qu.push(make_pair(level+1,node->left));
                if(node->right)
                    qu.push(make_pair(level+1,node->right));
            }
            return ret;
        }
    
private:
    vector<vector<int>> ret;
    
};

相关文章

  • 35. 把二叉树打印成多行(思路待补充)

    题目:把二叉树打印成多行,按层分行思路: 层序遍历,使用队列 每次入队记录一下当前的层号,考虑到vector是基0...

  • 剑指offer | 把二叉树打印成多行

    把二叉树打印成多行 从上到下按层打印成多行 分析:使用队列

  • 《剑指Offer》树考点题解

    题目链接:把二叉树打印成多行 题目简述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题解思路...

  • 牛客_剑指Offer_编程题 :把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。把二叉树打印成多行 解题思路 使用一个A...

  • [剑指offer]刷题笔记

    按之字顺序打印二叉树 把二叉树打印成多行 按之字顺序打印二叉树【树】【常考!!!】 题目描述:请实现一个函数按照之...

  • 剑指第三周

    对称的二叉树 其实就是要遍历嘛 按之字形顺序打印二叉树 同样是简单的层次遍历 把二叉树打印成多行 这个更简单了 栈...

  • 把二叉树打印成多行

    题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 这道题目与“从上往下打印二叉树”很相似...

  • 把二叉树打印成多行

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

  • 把二叉树打印成多行

    《剑指offer》刷题笔记。如有更好解法,欢迎留言。 关键字:树的广度遍历(层次遍历)、队列 题目描述: 从上到下...

  • 把二叉树打印成多行

    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 层次遍历即可可设置两个变量cur和next,分别...

网友评论

      本文标题:35. 把二叉树打印成多行(思路待补充)

      本文链接:https://www.haomeiwen.com/subject/mzeidctx.html