考察的知识点:二叉树的层次遍历;
解答方法分析:
- 定义了一个辅助函数dfs,该函数用于进行递归的深度优先搜索。
- 在dfs函数中,首先判断当前节点是否为空,若为空则直接返回。
- 接着递归地调用dfs函数遍历当前节点的左子树。
- 如果当前节点的左子树和右子树都为空,则将当前节点的值添加到结果数组ans中。. 最后递归地调用dfs函数遍历当前节点的右子树。
- 定义了一个公有函数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; } };