package codingInterviewGuide.part3tree;import java.util.Stack;/*** 非递归实现遍历二叉树* Created by Dell on 2017年09月03日.*/public class TraverseTree {public void preOrder(TreeNode root){Stack<TreeNode> stack=new Stack<TreeNode>();TreeNode cur=null;stack.add(root);while(!stack.isEmpty()){cur=stack.pop();System.out.print(cur.val+" ");if(cur.right!=null){stack.add(cur.right);}if(cur.left!=null){stack.add(cur.left);}}}public void in(TreeNode root){if(root==null){return;}in(root.left);System.out.println(root.val+" ");in(root.right);}public void inOrder(TreeNode root){if(root==null){return;}Stack<TreeNode> stack=new Stack<TreeNode>();stack.add(root);TreeNode cur=root.left;//cur指向栈顶的左孩子while(cur!=null||!stack.isEmpty()){//压栈的顺序是左,右,根,if(cur==null){cur=stack.pop();System.out.print(cur.val+" ");cur=cur.right;}else{stack.add(cur);cur=cur.left;}}}public void postOrder(TreeNode root){if(root==null){return;}Stack<TreeNode> stack=new Stack<TreeNode>();stack.add(root);TreeNode cur=root.left;//cur指向栈顶的左孩子while(cur!=null||!stack.isEmpty()){//压栈的顺序是左,右,根,if(cur==null){cur=stack.pop();System.out.print(cur.val+" ");cur=cur.right;}else{stack.add(cur);}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。