public class Solution1 { int sum = 0; public int hightvalue(Node root){ if(root == null) return 0; if(root.left == null && root.right == null) return 1; int left = hightvalue(root.left); int right = hightvalue(root.right); sum = sum < (left+right) ? (left+right) : sum; int ret = Math.max(left,right) + 1; return ret; } public static void main(String[] args){ Node N7 = new Node(7,null,null); Node N6 = new Node(6,N7,null); Node N5 = new Node(5,null,N6); Node N4 = new Node(4,null,null); Node N2 = new Node(2,N4,N5); Node N3 = new Node(3,null,null); Node N1 = new Node(1,N2,N3); Solution1 s = new Solution1(); System.out.println(s.hightvalue(N1)); System.out.println(s.sum); } } class Node{ int val; Node left; Node right; Node(int val, Node left, Node right){ this.val = val; this.left = left; this.right = right; } }