[LeetCode] 513. Find Bottom Left Tree Value_ Medium tag: BFS

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

 

Note: You may assume the tree (i.e., the given root node) is not NULL.

 

这个题的思路其实跟[LeetCode] 199. Binary Tree Right Side View_ Medium tag: BFS, Amazon里面我提到的left side view一样的思路, 只是返回的时候返回最后一个元素即可.

1. Constraints

1) root cannot be None, 所以edge case就是 1

 

2, Ideas

BFS:       T: O(n),   S: O(n)    n is the number of the nodes of the tree

 

3. Code

 1 class Solution:
 2     def LeftViewMost(self, root):
 3         ans, queue = [], collections.deque([(root, 0)])
 4         while queue:
 5             node, heig = queue.popleft()
 6             if heig == len(ans):
 7                 ans.append(node.val)
 8             if node.left:
 9                 queue.append(node.left)
10             if node.right:
11                 queue.append(node.right)
12         return ans[-1]

 

4. Test case

1) root is 1

2) 

    2
   / \
  1   3

3)
        1
       / \
      2   3
     /   / \
    4   5   6
       /
      7

 

转载于:https://www.cnblogs.com/Johnsonxiong/p/9271567.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值