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