给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
这里可采用深度优先和广度优先搜索,我选择dfs。
void preorderTraversal(TreeNode *root, vector<int>& output, int layer) {
if(nullptr == root)
return;
if(layer >= output.size())
output .push_back(root->val);
preorderTraversal(root->right, output, layer + 1);
preorderTraversal(root->left, output, layer + 1);
}
vector<int> rightSideView(TreeNode* root) {
vector<int> output;
preorderTraversal(root, output, 0);
return output;
}


本文介绍了一种使用深度优先搜索(DFS)算法来解决二叉树右视图问题的方法。通过递归地遍历二叉树的右子树,然后左子树,可以收集每一层最右侧的节点值。这种方法确保了只记录每个深度的第一个访问节点,从而得到从右视角看到的树的轮廓。
2426

被折叠的 条评论
为什么被折叠?



