1. 程式人生 > >513. Find Bottom Left Tree Value - LeetCode

513. Find Bottom Left Tree Value - LeetCode

https 分享 new link 按層遍歷 problems eno lee find

Question

513. Find Bottom Left Tree Value

技術分享圖片

Solution

題目大意:

給一個二叉樹,求最底層,最左側節點的值

思路:

按層遍歷二叉樹,每一層第一個被訪問的節點就是該層最左側的節點

技術分享圖片

Java實現:

public int findBottomLeftValue(TreeNode root) {
    Queue<TreeNode> nodeQueue = new LinkedList<>();
    nodeQueue.offer(root); // 向隊列追加元素,如果隊列滿返回false
    int left = -1;
    while (!nodeQueue.isEmpty()) {
        int curLayerSize = nodeQueue.size();
        for (int i = 0; i < curLayerSize; i++) {
            TreeNode cur = nodeQueue.poll(); // 移除並返回隊列頭部元素,隊列為空返回 null
            if (i == 0) left = cur.val; // 當前層的第一個節點最左結點就是最左側節點
            if (cur.left != null) nodeQueue.offer(cur.left);
            if (cur.right != null) nodeQueue.offer(cur.right);
        }
    }
    return left;
}

513. Find Bottom Left Tree Value - LeetCode