M-513. Find Bottom Left Tree Value

# 大佬的解法, 从右向左取node然后入队, 直接把node赋值就好了, 因为每次node肯定赋的是当前
# 最左下角的值.
import collections
class Solution:
    def findBottomLeftValue(self, root: TreeNode) -> int:
        queue = collections.deque([root])
        while queue:
            node = queue.popleft()
            res = node.val
            if node.right:
                queue.append(node.right)
            if node.left:
                queue.append(node.left)
        return res     

# 我的解法, 从左向右取node然后入队, 然后取每一层最左的
import collections
class Solution:
    def findBottomLeftValue(self, root: TreeNode) -> int:
        deq = collections.deque([root])
        cur_blv = float('-inf')
        while deq:
            length = len(deq)
            first_one = True
            for _ in range(length):
                node = deq.popleft()
                if first_one:
                    cur_blv = node.val
                    first_one = False    
                if node.left: deq.append(node.left)
                if node.right: deq.append(node.right)
        return cur_blv      

Last updated

Was this helpful?