您的位置:首页 > 其它

二叉树层次遍历的螺旋打印

2014-06-29 10:39 190 查看


如图所示打印结果为1,2,3,4,5,6,7的螺旋形式
package tree;

import java.util.Stack;

public class Spiralform {

/**
* 层次遍历的螺旋打印
* @param args
*/
public static void printspiralform(TreeNode root){
if(root==null) return;
Stack<TreeNode> stack1 = new Stack<>();
Stack<TreeNode> stack2 = new Stack<>();
stack1.push(root);
while(!stack1.isEmpty()||!stack2.isEmpty()){
while(!stack1.isEmpty()){
TreeNode node = stack1.pop();
System.out.print(node.value+" ");
if(node.right!=null){
stack2.push(node.right);
}
if(node.left!=null){
stack2.push(node.left);
}
}
while(!stack2.isEmpty()){
TreeNode node = stack2.pop();
System.out.print(node.value+" ");
if(node.left!=null){
stack1.push(node.left);
}
if(node.right!=null){
stack1.push(node.right);
}
}
}

}
public static void main(String[] args) {

TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(7);
root.left.left.left = new TreeNode(8);
root.left.left.right = new TreeNode(9);
root.left.right = new TreeNode(6);
root.right.left = new TreeNode(5);
root.right.right = new TreeNode(4);

printspiralform(root);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: