跳到主要内容

513.找树左下角的值

链接:513.找树左下角的值
难度:Medium
标签:树、深度优先搜索、广度优先搜索、二叉树
简介:给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

题解 1 - typescript

  • 编辑时间:2021-07-21
  • 执行用时:88ms
  • 内存消耗:43.2MB
  • 编程语言:typescript
  • 解法介绍:层序遍历。
function findBottomLeftValue(root: TreeNode): number {
const queue: TreeNode[] = [root];
let size = 1;
let ans = root.val;
while (queue.length !== 0) {
const node = queue.shift()!;
node.left && queue.push(node.left);
node.right && queue.push(node.right);
if (--size === 0 && queue.length !== 0) {
ans = queue[0].val;
size = queue.length;
}
}
return ans;
}

题解 2 - cpp

  • 编辑时间:2022-06-22
  • 执行用时:12ms
  • 内存消耗:21.1MB
  • 编程语言:cpp
  • 解法介绍:层序遍历。
class Solution {
public:
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*> q;
q.push(root);
int ans = root->val, size = 1;
while (q.size()) {
TreeNode* node = q.front();
q.pop();
if (node->left) q.push(node->left);
if (node->right) q.push(node->right);
if (--size == 0) {
size = q.size();
if (q.size()) ans = q.front()->val;
}
}
return ans;
}
};