码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer(59)按之字形顺序打印二叉树

时间:2018-08-24 20:42:31      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:ever   函数   二层   打印   找规律   效率   奇数   临时   另一个   

题目描述

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

 

题目分析

这道题还是需要画图分析,不然不好找规律。

正常的广度遍历的话,都是同样的顺序,从左到右,而我们要在广度遍历的基础上改造为之字形遍历。

也就是我们需要在奇数行从左至右,在偶数行从右至左,因为是先进后出,分析可得我们需要的数据结构是栈。

为了避免顺序错误,我们需要的不只是一个栈,而是两个栈,这个大家画图研究下就能想到。

两个栈是这么用的,这个栈保存这一行的数据,另一个栈保存下一行的数据,然后一行打印完后交替。

当然也有人是在广度遍历的基础上加个临时数组,然后对偶数行的数据reverse也可以做,但是我觉得reverse效率太低,所以就不打算写这种方法了。

 

代码

待更新

 

剑指offer(59)按之字形顺序打印二叉树

标签:ever   函数   二层   打印   找规律   效率   奇数   临时   另一个   

原文地址:https://www.cnblogs.com/wuguanglin/p/Print.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!