leetcode513. 找树左下角的值
一:题目
二:上码
/** * 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 getCen(TreeNode root) { if (root == null) return 0; int left_len = getCen(root.left); int right_len = getCen(root.right); return Math.max(left_len+1,right_len+1); } public int getAns(TreeNode root) { ArrayDeque<TreeNode> queue = new ArrayDeque<>(); if (root != null) queue.add(root); int cen = getCen(root); while (!queue.isEmpty()) { int size = queue.size(); cen--; while (size > 0) { TreeNode node = queue.poll(); if (node.left != null) queue.add(node.left); if (node.right != null) queue.add(node.right); if (cen == 0) return node.val; size--; } } return 0; } public int findBottomLeftValue(TreeNode root) { int ans = getAns(root); return ans; } }
上一篇:
IDEA上Java项目控制台中文乱码