public class progs { public 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() + sumTree(root.getLeft()) + sumTree(root.getRight()); } public static int countPaths(TreeNode root) { int sum=0; if(root==null) return 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; else return 1+Math.max(depth(root.getLeft()), depth(root.getRight())); } public static void main() { TreeNode head = new TreeNode(1); head.setLeft(new TreeNode(2)); head.setRight(new TreeNode(3)); head.getRight().setLeft(new TreeNode(6)); head.getLeft().setLeft(new TreeNode(4)); head.getLeft().setRight(new TreeNode(5)); System.out.println(countPaths(head)); System.out.println("\n" + sumTree(head)); System.out.println("\n" + depth(head)); printTree(head); } public static void printTree(TreeNode root) { if(root==null) return; printTree(root.getLeft()); System.out.print(root.getValue()+" "); printTree(root.getRight()); } }