LeetCode 513. Find Bottom Left Tree Value

原题链接在这里:https://leetcode.com/problems/find-bottom-left-tree-value/description/

题目:

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.

题解:

做从右到左的BFS.

Time Complexity: O(n). n是node个数.

Space: O(n).

AC Java:

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     public int findBottomLeftValue(TreeNode root) {
12         LinkedList<TreeNode> que = new LinkedList<TreeNode>();
13         que.add(root);
14         while(!que.isEmpty()){
15             root = que.poll();
16             if(root.right != null){
17                 que.add(root.right);
18             }
19             if(root.left != null){
20                 que.add(root.left);
21             }
22         }
23         return root.val;
24     }
25 }

 

posted @ 2017-09-21 13:35  Dylan_Java_NYC  阅读(149)  评论(0编辑  收藏  举报