0%

199.二叉树的右视图 513.找树左下角的值

199. 二叉树的右视图

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例 1:

img

输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

输入: [1,null,3]
输出: [1,3]

示例 3:

输入: []
输出: []

提示:

  • 二叉树的节点个数的范围是 [0,100]
  • -100 <= Node.val <= 100

C++

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
vector<int> res;
queue<TreeNode*> q;

vector<int> rightSideView(TreeNode* root) {
if(!root) return {};
bfs(root);
return res;
}

void bfs(TreeNode* root){
q.push(root);
while(!q.empty()){
int len = q.size();
res.push_back(q.back()->val);
for(int i = 0; i < len; i++){
TreeNode* temp = q.front();
q.pop();
if(temp -> left) q.push(temp -> left);
if(temp -> right) q.push(temp -> right);
}
}
}

};

513. 找树左下角的值

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

假设二叉树中至少有一个节点。

示例 1:

img

输入: root = [2,1,3]
输出: 1

示例 2:

img

输入: [1,2,3,4,null,5,6,null,null,7]
输出: 7

提示:

  • 二叉树的节点个数的范围是 [1,104]
  • -231 <= Node.val <= 231 - 1

C++

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
TreeNode* res = nullptr;
TreeNode* temp = nullptr;
queue<TreeNode*> q;
int findBottomLeftValue(TreeNode* root) {
// if(root -> left == nullptr && root -> right == nullptr) return root -> val;
bfs(root);
return res -> val;
}
void bfs(TreeNode* root){
q.push(root);
while(!q.empty()){
int len = q.size();
res = q.front();
for(int i = 0; i < len; i ++){
temp = q.front();
q.pop();
if(temp -> left) q.push(temp -> left);
if(temp -> right) q.push(temp -> right);
}
}
}
};