按照之字形顺序打印二叉树

时间:2022-08-29 17:27:55

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

 

思路:

  使用栈先进后出的特点。

  使用两个栈,一个栈(stack1)存需要打印单数行的数据,一个(stack2)存需要打印偶数行的数据。让根节点入stack1,在stack1和stack2不空的情况下,进行循环。stack1中节点出栈的时候,从左向右将自己的子节点加入到stack2,并打印自己的值。  stack2中的节点出栈的时候,将自己的子节点从右向左加入到stack1,并打印自己的值。

按照之字形顺序打印二叉树