当前位置: 代码迷 >> 综合 >> 非递归实现二叉树后序遍历
  详细解决方案

非递归实现二叉树后序遍历

热度:88   发布时间:2024-02-06 13:47:44.0

非递归实现二叉树后序遍历

/*	145. 二叉树的后序遍历* 	题目描述:非递归实现二叉树中序遍历* 	解题思路:* */
public class BinaryTreePostorder {public static void main(String[] args) {TreeNode root = new TreeNode(1);root.left=new  TreeNode(2);root.right=new TreeNode(3);BinaryTreePostorderSolution1 solution = new BinaryTreePostorderSolution1();List list = solution.postorderTraversal(root);Iterator<Integer> iterator = list.iterator();while(iterator.hasNext()) {System.out.println(iterator.next());}}
}class BinaryTreePostorderSolution1 {/*	宽度优先搜索:* */public List<Integer> postorderTraversal(TreeNode root) {Stack<TreeNode> stack1 = new Stack<TreeNode>();Stack<TreeNode> stack2 = new Stack<TreeNode>();List<Integer> list = new ArrayList<Integer>();stack1.push(root);while(!stack1.isEmpty()) {TreeNode node = stack1.pop();stack2.push(node);if(node.left!=null) stack1.push(node.left);if(node.right!=null) stack1.push(node.right);}while(!stack2.isEmpty()) {list.add(stack2.pop().val);}return list;}
}

 

  相关解决方案