leetcode 199 二叉树的右视图
Posted BeicC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 199 二叉树的右视图相关的知识,希望对你有一定的参考价值。
leetcode 199. 二叉树的右视图
因为某些比赛导致三天没写编程题,回来之后发现自己好像啥都不会了,写每一题都要花费好长时间/_
牢骚结束:二叉树的遍历一般用dfs或者bfs,dfs一般用于前中后序遍历,bfs一般用于层序遍历
方法一:这一题最直观的解法就是得到二叉树的层序遍历,然后每次取每一层的最后一个元素。
方法二:通过看题解发现dfs也能解决这一题,而且非常简洁!dfs进行反的前序遍历(根-右-左)
class Solution {
public:
vector<int> ans;
void dfs(TreeNode* root, int depth){
if(root == NULL) return;
if(depth == ans.size()) ans.push_back(root->val);
depth++;
dfs(root->right,depth);
dfs(root->left,depth);
}
vector<int> rightSideView(TreeNode* root) {
ans.clear();
if(root == NULL) return ans;
dfs(root,0);
return ans;
}
};
没什么总结的,写这篇为了提醒我自己,有空多做题!!
以上是关于leetcode 199 二叉树的右视图的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 199. 二叉树的右视图(Binary Tree Right Side View)