import java.util.LinkedList;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
class TreeNodeInfo{
TreeNode treeNode=null;
int depth=0;
TreeNodeInfo(TreeNode treeNode,int depth)
{
this.treeNode=treeNode;
this.depth=depth;
}
}
public class Solution2 {
public int run(TreeNode root) {
LinkedList<TreeNodeInfo> linkedList=new LinkedList<TreeNodeInfo>();
int depth=0;
if(root!=null)
{linkedList.add(new TreeNodeInfo(root, depth+1));
}
while(!linkedList.isEmpty())
{
TreeNodeInfo treeNodeInfo=linkedList.poll();
TreeNode first=treeNodeInfo.treeNode;
if (first.left!=null)
{linkedList.add(new TreeNodeInfo(first.left, treeNodeInfo.depth+1));
}
if(first.right!=null)
{linkedList.add(new TreeNodeInfo(first.right, treeNodeInfo.depth+1));
}
if(first.left==null && first.right==null)
{
depth=treeNodeInfo.depth;
break;
}
}
return depth;
}
public static void main(String[] args) {
Solution2 solution2 = new Solution2();
TreeNode treeNode1 = new TreeNode(1);
TreeNode treeNode2 = new TreeNode(2);
TreeNode treeNode3 = new TreeNode(3);
TreeNode treeNode4 = new TreeNode(4);
treeNode1.right = treeNode2;
treeNode1.left = treeNode3;
treeNode3.left = treeNode4;
System.out.println(solution2.run(treeNode1));
}
}