BFS
import java.util.*; public class Solution { public int run (TreeNode root) { if(root == null){ return 0; } Queue q = new LinkedList(); q.add(root); int depth = 1; while(!q.isEmpty()){ int size = q.size(); for(int i = 0;i<size;i++){ TreeNode cur = q.poll(); if(cur.left == null && cur.right == null){ return depth; } if(cur.left != null){ q.add(cur.left); } if(cur.right != null){ q.add(cur.right); } } depth++; } return depth; } }