Day-16 513. 找树左下角的值 513. 找树左下角的值题目12345678910111213141516171819给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。示例 1:输入: root = [2,1,3]输出: 1示例 2:输入: [1,2,3,4,null,5,6,null,null,7]输出: 7提示:二叉树的节点个数的范围是 [1,104]-231 <= Node.val <= 231 - 1 题目思路 1、DFS 与 BFS 题目,DFS 变式多,BFS 单一,更简单。 代码块。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657/** * 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: /* int findBottomLeftValue(TreeNode* root) { queue<TreeNode* > q; if(root != NULL) q.push(root); int result = 0; while (!q.empty()) { int n = q.size(); for (int i = 0; i < n; i++) { TreeNode* node = q.front(); q.pop(); if(i == 0) result = node->val; if(node -> left != nullptr) q.push(node -> left); if(node -> right != nullptr) q.push(node -> right); } } return result; */ int len = INT_MIN; int value; void dfs(TreeNode* root, int deep) { if(root != nullptr) { if(root -> left == nullptr && root -> right == nullptr) { if(deep > len) { len = deep; value = root -> val; } return; } dfs(root -> left, deep + 1); dfs(root -> right, deep + 1); } return; } int findBottomLeftValue(TreeNode* root) { dfs(root, 0); return value; }}; 复杂度 时间复杂度:O(n) 空间复杂度:O(n) 91-day-algorithm #Binary Tree Day-16 513. 找树左下角的值 https://chaggle.github.io/2021/09/25/Leetcode/91-day/day-16/ 作者 chaggle 发布于 2021年9月25日 许可协议 Day-17 297. 二叉树的序列化与反序列化 上一篇 Day-15 129. 求根节点到叶节点数字之和 下一篇 Please enable JavaScript to view the comments