按之字形打印二叉树

 ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
        ArrayList<TreeNode> array1 = new ArrayList<TreeNode>();
        ArrayList<TreeNode> array2 = new ArrayList<TreeNode>();

        if(pRoot==null)
        {
            return result;
        }
        array1.add(pRoot);
        int i = 1;
        while(0!=array1.size()||0!=array2.size())
        {
            ArrayList<Integer> temp = new ArrayList<Integer>();

            if(i%2==1)
            {
                for(int j=0;j<array1.size();j++)
                {
                    TreeNode t = array1.get(j);
                    temp.add(t.val);
                    if(t.left!=null)
                    {
                        array2.add(t.left);
                    }
                    if(t.right!=null)
                    {
                        array2.add(t.right);
                    }
                }
                result.add(temp);
                array1.clear();
                i++;
            }
            else
            {
                for(int j=array2.size()-1;j>=0;j--)
                {
                    TreeNode t = array2.get(j);
                    temp.add(t.val);

                }
                result.add(temp);
                for(int j=0;j<=array2.size()-1;j++)
                {
                    TreeNode t = array2.get(j);
                    if(t.left!=null)
                    {
                        array1.add(t.left);
                    }
                    if(t.right!=null)
                    {
                        array1.add(t.right);
                    }

                }
                array2.clear();
                i++;
            }
        }
        return result;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按...
    juexin阅读 1,715评论 0 0
  • 题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三...
    Tony_Huang阅读 1,360评论 0 0
  • 9min。直接用双向队列。map不对原来的list进行改变,返回的是一个map对象啊 另一个思路就是将队列转为两个...
    mztkenan阅读 1,315评论 0 0
  • 题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按...
    NoFacePeace阅读 2,635评论 0 0
  • 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行...
    Max_7阅读 2,523评论 0 0

友情链接更多精彩内容