LeetCode

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
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
import java.util.Queue;
import java.util.LinkedList;
public class Solution {
    
    public int findBottomLeftValue(TreeNode root) {
        if (root == null)
            return 0;
        Queue<TreeNode> q = new LinkedList<TreeNode>();
        q.offer(root);
        int ret = 0;
        while ( ! q.isEmpty()) {
            TreeNode curr = q.peek();
            ret = curr.val;
            int size = q.size();
            while (size-- > 0) {
                TreeNode nodei = q.poll();
                if (nodei.left != null)
                    q.offer(nodei.left);
                if (nodei.right != null)
                    q.offer(nodei.right);
            }
        }
        return ret;
    }
    
    
}
原文地址:https://www.cnblogs.com/wxisme/p/7327028.html