按之字形打印二叉树

 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;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容