//Jim public class exercises { public static boolean isLeaf(TreeNode node) { return node != null && node.getLeft() == null && node.getRight() == null; } public static int sumTree(TreeNode root) { if(root == null) return 0; return ((Integer)root.getValue()).intValue() + sumTree(root.getLeft()) + sumTree(root.getRight()); } public static int countPaths(TreeNode root) { if(root == null) return 0; int sum = 0; if(root.getLeft() != null) sum += 1 + countPaths(root.getLeft()); if(root.getRight() != null) sum += 1 + countPaths(root.getRight()); return sum; } public static int depth(TreeNode root) { if(root == null) return 0; return Math.max(1 + depth(root.getLeft()), 1 + depth(root.getRight())); } public static void main() { TreeNode head = new TreeNode(1, new TreeNode(2, new TreeNode(4), new TreeNode(5)), new TreeNode(3, new TreeNode(6), null)); printTree(head); System.out.println("\n"+sumTree(head)); System.out.println(countPaths(head)); System.out.println(depth(head)); } public static void printTree(TreeNode root) { if(root == null) return; printTree(root.getLeft()); System.out.print(root.getValue()+" "); printTree(root.getRight()); } }