您无需使用额外的队列或进行任何复杂的计算即可实现您想要的工作。这个想法很简单。
除了用于BFS的队列之外,此空间不使用任何额外的空间。
我要使用的想法是
null在每个级别的末尾添加。因此,您遇到的+1的空值数量就是您所处的深度。(当然,终止后只是
level)。
int level = 0; Queue <Node> queue = new linkedList<>(); queue.add(root); queue.add(null); while(!queue.isEmpty()){ Node temp = queue.poll(); if(temp == null){ level++; queue.add(null); if(queue.peek() == null) break;// You are encountering two consecutive `nulls` means, you visited all the nodes. else continue; } if(temp.right != null) queue.add(temp.right); if(temp.left != null) queue.add(temp.left); }


