本文主要是介绍算法题 十八 之 之 字型打印二叉树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一开始我的思路就是一层用队列打印,一层用栈打印。
但是,后面发现与答案不符合,因为每一次打印都要从另外一个方向重新开始,唉。
真的蠢,每一次都要从另外一个方向,用两个栈不就解决了吗?搞那么多事。
public void prinft(Node root) {Stack<Node> stack1 = new Stack<Node>();Stack<Node> stack2 = new Stack<Node>();stack1.add(root);while(!stack1.empty() || !stack2.empty()) {if (!stack1.empty()) {Node node = stack1.pop();if (node.left != null) {stack2.add(node.left);}if (node.right != null) {stack2.add(node.right);}System.out.println(node.val);} else if (!stack2.empty()){Node node = stack2.pop();if (node.right != null) {stack2.add(node.right);}if (node.left != null) {stack2.add(node.left);}System.out.println(node.val);}}}class Node {int val;Node right;Node left;}
这篇关于算法题 十八 之 之 字型打印二叉树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!