Given a binary tree, find the leftmost value in the last row of the tree.
Example 1:
Input: 2 / / 1 3Output:1Example 2:
Input: 1 / / 2 3 / / / 4 5 6 / 7Output:7Note:You may assume the tree (i.e., the given root node) is notNULL.
思路:找二叉樹最底層最左邊的值,使用層次遍歷
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { PRivate int result = 0; private int height = 0; public int findBottomLeftValue(TreeNode root) { search(root, 1); return result; } private void search(TreeNode root, int depth) { if(root==null) return; if(height<depth) { result = root.val; height = depth; } search(root.left, depth+1); search(root.right, depth+1); //如果同一左右子樹都有,執行完左子樹后height=depth,就不會再執行右子樹的了 }}
新聞熱點
疑難解答