題目地址:
https://leetcode.com/problems/find-bottom-left-tree-value/
給定一棵二叉樹,求其最深一層的節點中最左邊的葉子的值。直接用BFS做層序遍歷即可,每層從右向左遍歷,遍歷到的最後一個數即爲所求。代碼如下:
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
public int findBottomLeftValue(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
int res = 0;
while (!queue.isEmpty()) {
TreeNode x = queue.poll();
res = x.val;
if (x.right != null) {
queue.offer(x.right);
}
if (x.left != null) {
queue.offer(x.left);
}
}
return res;
}
}
class TreeNode {
int val;
TreeNode left, right;
TreeNode(int x) {
val = x;
}
}
時空複雜度。