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

之字形打印二叉树

作者: Mr_Stark的小提莫 | 来源:发表于2019-09-29 09:52 被阅读0次

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

思路:两个栈,用于更换每一层的顺序。每次出栈一个元素再将其子结点压入另一个栈,直至栈空。最终两个栈均空时,全部结点被遍历,程序结束。

解:

 vector<vector<int> > Print(TreeNode* pRoot) {

        vector<int> floor;

        vector<vector<int> > res;

        if (!pRoot) return res;

        stack<TreeNode*> tmp1;

        stack<TreeNode*> tmp2;

        tmp1.push(pRoot);

        int flag=0;

        while (!tmp1.empty() || !tmp2.empty()){

            if (flag==0){

                while (!tmp1.empty()){

                    TreeNode* p=tmp1.top();

                    floor.push_back(p->val);

                    tmp1.pop();

                    if (p->left) tmp2.push(p->left);

                    if (p->right) tmp2.push(p->right);

                }

                flag=1;

                res.push_back(floor);

                floor.clear();

            }

            else{

                while (!tmp2.empty()){

                    TreeNode* p=tmp2.top();

                    floor.push_back(p->val);

                    tmp2.pop();

                    if (p->right) tmp1.push(p->right);

                    if (p->left) tmp1.push(p->left);

                }

                flag=0;

                res.push_back(floor);

                floor.clear();

            }

        }

        return res;

    }

相关文章

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

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

  • 打印二叉树

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

  • 二叉树的遍历

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

  • 剑指第三周

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

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

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

  • 剑指offer66题

    数据结构类题目 Tree 32-之字形打印二叉树[https://leetcode-cn.com/problems...

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

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

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

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

  • 一道二叉树打印题引发的deque介绍

    首先题目是这样的:自上而下按照之字形打印二叉树,第一行按照从左到右的顺序打印,第二层按照从右到左。。。这道题我最初...

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

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

网友评论

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

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