Find the deepest node in a binary tree:
Example:
A
/ \
B C
/ \ / \
D E F G
\
H
Return Node ‘H’
public class test { //unsigned 2^32-1 so we need a long to instead. public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } int maxLevel; TreeNode maxNode; public TreeNode LAC(TreeNode root){ if(root == null) return null; findMax(root,0); return maxNode; } public void findMax(TreeNode root,int level){ if(root == null) return; if(root.left == null && root.right == null) { if((level+1)>maxLevel) { maxLevel = level+1; maxNode = root; } return; } findMax(root.left,level+1); findMax(root.right,level+1); } }