考察的知识点:二叉树的层次遍历;

解答方法分析:

  1. 定义了一个辅助函数dfs,该函数用于进行递归的深度优先搜索。
  2. 在dfs函数中,首先判断当前节点是否为空,若为空则直接返回。
  3. 接着递归地调用dfs函数遍历当前节点的左子树。
  4. 如果当前节点的左子树和右子树都为空,则将当前节点的值添加到结果数组ans中。. 最后递归地调用dfs函数遍历当前节点的右子树。
  5. 定义了一个公有函数bottomView,该函数调用dfs函数进行遍历,并返回结果数组ans。

所用编程语言:C++;

完整编程代码:↓

/**
 * struct TreeNode {
 *  int val;
 *  struct TreeNode *left;
 *  struct TreeNode *right;
 *  TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
  public:
    vector<int> ans;
    void dfs(TreeNode* root) {
        if (root == nullptr) return;
        dfs(root->left);
        if (root->left == nullptr && root->right == nullptr) {
            ans.push_back(root->val);
        }
        dfs(root->right);
    }

    vector<int> bottomView(TreeNode* root) {
        dfs(root);
        return ans;
    }
};