Breadth-first Search -- Leetcode problem513. Find Bottom Left Tree Value
来源:互联网 发布:十大巅峰网络小说知乎 编辑:程序博客网 时间:2024/06/05 19:27
- 描述:Given a binary tree, find the leftmost value in the last row of the tree.
Example 1:
Input:
2 / \1 3
Output:
1
Example 2:
Input:
1 / \ 2 3 / / \4 5 6 / 7
Output:
7
- 分析:这道题是寻找最底左树节点的值,题目本身实现并不困难。
- 思路一:用BFS算法层层便利去寻找最底左树的值。
class Solution {public: int findBottomLeftValue(TreeNode* root) { int val = 0; queue<TreeNode*> my_queue; my_queue.push(root); while (!my_queue.empty()) { int n = my_queue.size(); for (int i = 0; i < n; i++) { TreeNode* temp = my_queue.front(); my_queue.pop(); if (i == 0) val = temp -> val; if (temp -> left) my_queue.push(temp -> left); if (temp -> right) my_queue.push(temp -> right); } } return val;}};
- 思路二:用递归的方式实现,这种方法更想树的遍历一点,在遍历一棵数的过程中找到最底左树的值。
class Solution {public: void findBottomLeftValue(TreeNode* root, int& maxDepth, int& leftVal, int depth) { if (!root) return; if (depth > maxDepth) { maxDepth = depth; leftVal = root->val; } findBottomLeftValue(root->left, maxDepth, leftVal, depth+1); findBottomLeftValue(root->right, maxDepth, leftVal, depth+1);}int findBottomLeftValue(TreeNode* root) { if (!root) return 0; int maxDepth = 0; int leftVal = root->val; findBottomLeftValue(root, maxDepth, leftVal, 0); return leftVal;}};
阅读全文
0 0
- Breadth-first Search -- Leetcode problem513. Find Bottom Left Tree Value
- LeetCode 513. Find Bottom Left Tree Value
- [leetcode]513. Find Bottom Left Tree Value
- [leetcode] 513. Find Bottom Left Tree Value
- 【LeetCode】513. Find Bottom Left Tree Value
- Leetcode 513. Find Bottom Left Tree Value
- LeetCode 513. Find Bottom Left Tree Value
- LeetCode #513: Find Bottom Left Tree Value
- LeetCode 513. Find Bottom Left Tree Value
- 【leetcode】 513. Find Bottom Left Tree Value
- 513. Find Bottom Left Tree Value | LeetCode
- leetcode-513. Find Bottom Left Tree Value
- LeetCode 513. Find Bottom Left Tree Value
- leetcode 513. Find Bottom Left Tree Value
- leetcode 513. Find Bottom Left Tree Value
- Leetcode 513 Find Bottom Left Tree Value
- [leetcode]513. Find Bottom Left Tree Value
- Leetcode 513. Find Bottom Left Tree Value
- 最佳缝合线拼接算法
- Java内存管理
- android中获取TextView行数
- oracle 标识无效
- 集合框架专题6—HashMap
- Breadth-first Search -- Leetcode problem513. Find Bottom Left Tree Value
- 在一个数组中找两个数,使得它们的和为一个指定的数
- 对象数组中,将对象中,相同的key-value对象,分类出来
- erlang要点
- Golang
- 借助PopupWindow实现的一种通用弹窗
- JavaScript getter setter的使用
- 一道难题Tree
- mui相关资料链接