算法:平衡二叉树
* @Description 平衡二叉樹
* @問題: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹
* @思路: 改為從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度;
* 如果發(fā)現(xiàn)子樹不是平衡二叉樹,則直接停止遍歷
* @問題: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹
* @思路: 改為從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度;
* 如果發(fā)現(xiàn)子樹不是平衡二叉樹,則直接停止遍歷
?
package LG.nowcoder;/*** @Author liguo* @Description 平衡二叉樹* @問題: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹* @思路: 改為從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度;* 如果發(fā)現(xiàn)子樹不是平衡二叉樹,則直接停止遍歷* 1:* @Data 2018-08-17 15:53*/ public class Solution16 {public boolean IsBalanced_Solution(TreeNode root) {return getDepth(root) != -1;}private int getDepth(TreeNode root) {if (root == null) return 0;int left = getDepth(root.left);if (left == -1) return -1;int right = getDepth(root.right);if (right == -1) return -1;return Math.abs(left - right) > 1 ? -1 : 1 + Math.max(left, right);} }?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/liguo-wang/p/9493945.html
總結(jié)
- 上一篇: winform DataGrid排序、去
- 下一篇: 图文并茂详解iptables 防火墙工作