程序员老鬼

某大厂员工吐槽:公司领导夜里10点发群消息,大家都已读不回。哪知凌晨2点,领导在群里发飙:搞不明白就离职,以后已读不回按旷工处理。

一位大厂员工吐槽了公司领导的做法

事情是这样的:领导习惯性地在晚上10点钟通过公司群聊发布工作消息,虽然很多员工都已经看过了消息,但碍于时间已晚,大家选择了“已读不回”,希望能在第二天再做回复。

Image

然而,凌晨2点,领导突然在群里发火,表示无法理解为什么大家不回应信息,并直接威胁道:“搞不明白就离职,以后‘已读不回’一律按旷工处理。”

员工们并非不重视工作,而是对合理的工作与休息时间有着基本的需求和期待。在信息爆炸的时代,如何平衡工作与生活、提升沟通效率,成为了现代职场管理者亟需解决的重要课题。

面试题:二叉树的右视图

树上站在右边看,能看到哪些节点,这题看着像层序遍历的入门题,真写起来,很多人第一反应还是递归一路往右钻。结果一上手就错:右视图不是“右边那条链”,而是每一层最后看到的那个节点。这两个概念差得还挺远。像这种题,我第一眼一般不急着写 DFS,先把“层”这个信息抓稳,不然代码写着写着就会把题意写歪。整体写法上,我参考了你给的技术文那种更偏现场判断、少讲空话的味道来组织,但代码我重新写了,没有沿用现成骨架。

先说判断:既然题目问“右视图”,本质就是每层取一个值。那最顺手的就是层序遍历。队列里一层一层出,当前层最后一个节点,直接塞进结果集,结束。

Java 我会这么写,够短,也不拧巴:

classSolution{
public List<Integer> rightSideView(TreeNode root){
        List<Integer> ans = new ArrayList<>();
if (root == null) {
return ans;
        }

        Deque<TreeNode> queue = new ArrayDeque<>();
        queue.offer(root);

while (!queue.isEmpty()) {
int levelSize = queue.size();
for (int i = 0; i < levelSize; i++) {
                TreeNode node = queue.poll();

if (i == levelSize - 1) {
                    ans.add(node.val);
                }

if (node.left != null) {
                    queue.offer(node.left);
                }
if (node.right != null) {
                    queue.offer(node.right);
                }
            }
        }
return ans;
    }
}

比如这棵树:

    1
   / \
  2   3
   \   \
    5   4

第一层看到 1,第二层看到 3,第三层看到 4,所以答案是 [1,3,4]。

这题也能用 DFS 做,而且 DFS 更像是“先看右边,右边没了再看左边”。关键点不是递归本身,而是第一次到达某个深度时,那个节点就是这一层从右边看到的节点。所以递归顺序必须先右后左,这地方一改,结果就变味了。

classSolution{
public List<Integer> rightSideView(TreeNode root){
        List<Integer> ans = new ArrayList<>();
        dfs(root, 0, ans);
return ans;
    }

privatevoiddfs(TreeNode node, int depth, List<Integer> ans){
if (node == null) {
return;
        }

if (depth == ans.size()) {
            ans.add(node.val);
        }

        dfs(node.right, depth + 1, ans);
        dfs(node.left, depth + 1, ans);
    }
}

真要我选,我在面试里更愿意先写 BFS。原因很简单:题目明着按层拿结果,层序遍历不容易解释偏,也不容易把“右视图”误写成“右子树优先遍历结果”。

这题难点不在代码量,在于别把观察角度理解错。树题经常这样,代码就十几行,想偏了能调半天。