题解 | #牛群仰视图#
牛群仰视图
https://www.nowcoder.com/practice/0f37a18320c4466abf3a65819592e8be
考察的知识点:二叉树的层次遍历;
解答方法分析:
- 定义了一个辅助函数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;
}
};
