首页 > 代码库 > [LeetCode]110 Balanced Binary Tree
[LeetCode]110 Balanced Binary Tree
https://oj.leetcode.com/problems/balanced-binary-tree/
http://blog.csdn.net/linhuanmars/article/details/23731355
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { return visit(root).balanced; } ///////////////////////// // Solution A: DFS // // By definition: depth of two subtrees never differ by more than 1. private Result visit(TreeNode node) { if (node == null) return new Result(0, true); Result left = visit(node.left); if (!left.balanced) return new Result(0, false); Result right = visit(node.right); if (!right.balanced) return new Result(0, false); int height = Math.max(left.height, right.height) + 1; boolean balanced = Math.abs(left.height - right.height) <= 1; return new Result(height, balanced); } private static class Result { int height; boolean balanced; Result(int height, boolean balanced) { this.height = height; this.balanced = balanced; } } }
[LeetCode]110 Balanced Binary Tree
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。