二叉树的遍历算法
1 package com.berry.algorithm.tree; 2 3 /** 4 * Created by berry-h on 17-1-16. 5 * 树的节点类(结构体) 6 */ 7 public class TreeNode { 8 9 public int value; 10 11 public TreeNode leftChild; 12 13 public TreeNode rightChild; 14 15 }
1 package com.berry.algorithm.tree; 2 3 /** 4 * Created by berry-h on 17-1-16. 5 */ 6 public class TreeTraversalAlgorithm { 7 8 /** 9 * 10 * 树的前序遍历算法 11 */ 12 public static void dlr(TreeNode treeNode){ 13 14 if(treeNode == null){ 15 return; 16 } 17 18 System.out.println("前序算法 value: " + treeNode.value); 19 dlr(treeNode.leftChild); 20 dlr(treeNode.rightChild); 21 } 22 23 24 /** 25 * 26 * 树的中序遍历算法 27 */ 28 public static void ldr(TreeNode treeNode){ 29 30 if(treeNode == null){ 31 return; 32 } 33 34 ldr(treeNode.leftChild); 35 System.out.println("中序算法 value: " + treeNode.value); 36 ldr(treeNode.rightChild); 37 } 38 39 /** 40 * 41 * 树的后序遍历算法 42 */ 43 public static void lrd(TreeNode treeNode){ 44 45 if(treeNode == null){ 46 return; 47 } 48 49 lrd(treeNode.leftChild); 50 lrd(treeNode.rightChild); 51 System.out.println("后序算法 value: " + treeNode.value); 52 } 53 }