思路:
找樹左下角的值,有可能這個值不是左葉子節點,可能是右葉子節點,但怎么說這個值都是葉子節點,首先這道題用層序遍歷的思路比如什么隊列和BSF的遞歸都可以做,但我比較喜歡用純遞歸來搞,因為這道題不需要處理根節點,所以前中后序遍歷都可以,我們只要模擬層數,然后找到葉子節點即可。
代碼:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {int maxValue = 0;int maxLevel = 0;public int findBottomLeftValue(TreeNode root) {maxValue = root.val;findMaxValue(root,0);return maxValue;}public void findMaxValue(TreeNode root, int level){if(root==null) return;if(root.left == null && root.right==null){if(level>maxLevel){maxLevel = level;maxValue = root.val;}}findMaxValue(root.left, level+1);findMaxValue(root.right, level+1);}
}