find the deepest node in a binary tree

Find the deepest node in a binary tree: 

Example: 


/ \ 
B C 
/ \ / \ 
D E F G 



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);
      }

}

 

posted on 2014-10-15 02:49  brave_bo  阅读(158)  评论(0编辑  收藏  举报

导航