leetcode 513. 找树左下角的值
给定一个二叉树,在树的最后一行找到最左边的值。
示例 1:
输入:
2
/ \
1 3
输出:
1
示例 2:
输入:
1
/ \
2 3
/ / \
4 5 6
/
7
输出:
7
注意: 您可以假设树(即给定的根节点)不为 NULL。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-bottom-left-tree-value
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
层序遍历,用两个队列来记录每一层的数据,遇到最后一层,返回第一个节点的值。
public int findBottomLeftValue(TreeNode root) { Queue<TreeNode> a = new ArrayDeque<>(); Queue<TreeNode> b = new ArrayDeque<>(); a.add(root); while (!a.isEmpty() ) { TreeNode first = ((ArrayDeque<TreeNode>) a).getFirst(); while (!a.isEmpty()) { TreeNode poll = a.poll(); if (poll.left != null) { b.add(poll.left); } if (poll.right != null) { b.add(poll.right); } } if (b.isEmpty()) { return first.val; } a = b; b = new ArrayDeque<>(); } return 0; }