码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 199 二叉树的右视图

时间:2020-04-22 16:17:55      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:roo   public   牢骚   dev   解法   后序遍历   解决   vector   sid   

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 二叉树的右视图

标签:roo   public   牢骚   dev   解法   后序遍历   解决   vector   sid   

原文地址:https://www.cnblogs.com/Beic233/p/12752599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!