视图"/>
leetcode做题笔记199. 二叉树的右视图
给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4] 输出: [1,3,4]
示例 2:
输入: [1,null,3] 输出: [1,3]
示例 3:
输入: [] 输出: []
思路一:递归
c++解法
class Solution {
public:vector<int> rightSideView(TreeNode* root) {int depth=0;int h=0;vector<int> res;rightView(root,depth,0,res);return res;}void rightView(TreeNode* node,int& depth,int h,vector<int>& res){if(node==nullptr) return;h++;if(h>depth){res.push_back(node->val);depth++;}if(node->right)rightView(node->right,depth,h,res);if(node->left)rightView(node->left,depth,h,res);h--;}
};
分析:
本题要输出二叉树的右视图,可利用递归的方法,将最右边的子树不断放入栈中,最后输出,每放入一次深度加一,得到即为所求答案
总结:
本题考察递归在二叉树上的应用,利用递归调用上一遍历的子树将所要求的数放入栈中,最后输出答案
更多推荐
leetcode做题笔记199. 二叉树的右视图
发布评论