while (i --> 0)


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)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632