/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;

public TreeNode(int val) {
    this.val = val;

}

} */ //递归获取左右子树的深度,取更大者 public class Solution { public int TreeDepth(TreeNode root) { if(root == null) return 0; int left = TreeDepth(root.left); int right = TreeDepth(root.right); return left > right ? left + 1 : right + 1;

}

}/* public class ListNode { int val; ListNode next = null;

ListNode(int val) {
    this.val = val;
}

} */ public class Solution {

public ListNode EntryNodeOfLoop(ListNode pHead) {
    ListNode low = pHead;
    ListNode fast = pHead;
   if(pHead == null ) {
       return null;
   }else{
       low = low.next;
       if(low == null) return null;
        fast = fast.next;
        if(fast == null) return null;
        fast = fast.next;
       if(fast == null) return null;
       
      
       while(low != fast ){
        low = low.next;
       if(low == null) return null;
        fast = fast.next;
        if(fast == null) return null;
        fast = fast.next;
       if(fast == null) return null;
    }
   }    
  
        low = pHead;
        while(low != fast){
        low = low.next;
        fast = fast.next;          
    }                                      
    return low;
}

}