public int maxDepth(TreeNode root) {
if (root == null)
return 0;
Deque stack = new LinkedList<>();
stack.push(root);
int count = 0;
while (!stack.isEmpty()) {
int size = stack.size();
while (size-- > 0) {
TreeNode cur = stack.pop();
if (cur.left != null)
stack.addLast(cur.left);
if (cur.right != null)
stack.addLast(cur.right);
}
count++;
}
return count;
}
while (i --> 0) 这是什么用法?,第一次遇见
while (i --> 0)
意思是当前i是否大于0,然后i自减
等价于:
while (size> 0) {
size--;
TreeNode cur = stack.pop();
if (cur.left != null)
stack.addLast(cur.left);
if (cur.right != null)
stack.addLast(cur.right);
}
其实关键点在于
(i--)>0
加个括号就看懂了吧
你看成箭头那肯定迷糊了
while (i --> 0) 是先 判断 i> 0 这个表达式是否成立,然后再执行 i-- (也就是 i = i-1)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!