二叉树先(中)(后)序遍历(二)
递归的方式) public ArrayList
postorderTraversal(TreeNode root) { ArrayList
list = new ArrayList
(); if (root == null) return list; if (root.left != null) list.addAll(postorderTraversal(root.left)); if (root.right != null) list.addAll(postorderTraversal(root.right)); if (root != null) list.add(root.val); return list; } public static void main(String[] args) { ArrayList
list1 = new ArrayList
(); ArrayList
list2 = new ArrayList
(); ArrayList
list3 = new ArrayList
(); PreorderTraversal p = new PreorderTraversal(); // String[] bitree = {"1","#","2","3","#","#","4","5","6"}; String[] bitree = {}; TreeNode root = p.createTreeNode(bitree); /* * //普通先序遍历二叉树 System.out.println("普通先序遍历二叉树"); p.pre(root); * System.out.println("\n***********************************"); */ // 利用栈先序遍历二叉树 ArrayList
list = p.preorderTraversal2(root); System.out.println("栈先序遍历二叉树"); for (Integer num : list) { System.out.print(num + " "); } System.out.println("\n***********************************"); // 递归先序遍历二叉树 list1 = p.preorderTraversal(root); System.out.println("递归先序遍历二叉树"); if (list1.size() > 0) { for (Integer num : list1) { System.out.print(num + " "); } } System.out.println("\n***********************************"); // 递归中序遍历二叉树 list2 = p.midorderTraversal(root); System.out.println("递归中序遍历二叉树"); if (list2.size() > 0) for (Integer num : list2) { System.out.print(num + " "); } System.out.println("\n***********************************"); // 递归先序遍历二叉树 list3 = p.postorderTraversal(root); System.out.println("递归后序遍历二叉树"); if (list3.size() > 0) for (Integer num : list3) { System.out.print(num + " "); } } }