
如图所示打印结果为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);
}
}
本文探讨了如何实现二叉树的螺旋层次遍历,以1,2,3,4,5,6,7为例,展示了螺旋打印的具体过程。
9440

被折叠的 条评论
为什么被折叠?



