美文网首页
按之字形顺序打印二叉树

按之字形顺序打印二叉树

作者: su945 | 来源:发表于2020-04-25 23:08 被阅读0次

题目描述

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

问题分析

利用栈的性质,后进先出实现逆序打印。
同时区别奇偶不同的函数

解题思路1

class Solution {
public:
        vector<vector<int> > Print(TreeNode* pRoot) {
            vector<vector<int>> ret;
            if(pRoot==NULL) return ret;
            stack<TreeNode*> s1;
            stack<TreeNode*> s2;
            s1.push(pRoot);
            while(!s1.empty()||!s2.empty()){
                vector<int> v1;
                vector<int> v2;
                while(!s1.empty()){
                    v1.push_back(s1.top()->val);
                    if(s1.top()->left!=NULL) s2.push(s1.top()->left);
                    if(s1.top()->right!=NULL) s2.push(s1.top()->right);
                    s1.pop();
                }
                if(v1.size()!=0)
                ret.push_back(v1);
                while(!s2.empty()){
                    v2.push_back(s2.top()->val);
                    if(s2.top()->right!=NULL)   s1.push(s2.top()->right);
                    if(s2.top()->left!=NULL)  s1.push(s2.top()->left);
                    s2.pop();
                }
                if(v2.size()!=0)
                ret.push_back(v2);
            }
            return ret;
        }
};

相关文章

  • JZ-059-按之字形顺序打印二叉树

    按之字形顺序打印二叉树 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从...

  • 打印二叉树

    按之字形顺序打印二叉树 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺...

  • 剑指offer | 按之字形顺序打印二叉树

    按之字形顺序打印二叉树 请实现一个函数按照之字顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的...

  • 二叉树的遍历

    从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 按之字形顺序打印二叉树 请实现一个函数...

  • 剑指第三周

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

  • 剑指offer编程题—按之字形打印二叉树

    题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按...

  • 面试题32 - III. 从上到下打印二叉树 III

    题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,...

  • 面试题32-3.从上到下打印二叉树3_hn

    题目描述 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第...

  • 剑指offer 33- 之字形打印二叉树

    请实现一个函数按照之字形顺序从上向下打印二叉树。 即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第...

  • Java日记2018-06-04

    32.3 按之字形顺序打印二叉树上一题的扩展,使用辅助的队列 和栈来实现,注意一下注释里面顺序的坑 二叉搜索树的后...

网友评论

      本文标题:按之字形顺序打印二叉树

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