【平衡二叉树】leetcode 110. Balanced Binary Tree

来源:互联网 发布:移动网络转换器 编辑:程序博客网 时间:2024/06/05 20:16

leetcode 110. Balanced Binary Tree

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isBalanced(TreeNode root) {        if(root==null) return true;        int leftheight = getheight(root.left);        int rightheight = getheight(root.right);        if(leftheight==-1||rightheight==-1)  return false;        if(leftheight-rightheight<=1&&leftheight-rightheight>=-1){            return true;        }else{            return false;        }    }    private int getheight(TreeNode root){        if(root==null) return 0;        int l = getheight(root.left);        int r = getheight(root.right);        if(l==-1||r==-1) return -1;        else{            if(l-r<=1&&l-r>=-1){                return 1+(l>r?l:r);            }else{                return -1;            }        }    }}

稍微改动一点,这样才是优化: 1ms

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isBalanced(TreeNode root) {        if(root==null) return true;        int leftheight = getheight(root.left);        int rightheight = getheight(root.right);        if(leftheight==-1||rightheight==-1)  return false;        if(leftheight-rightheight<=1&&leftheight-rightheight>=-1){            return true;        }else{            return false;        }    }    private int getheight(TreeNode root){        if(root==null) return 0;        int l = getheight(root.left);        if(l==-1) return -1;        int r = getheight(root.right);        if(r==-1) return -1;        else{            if(l-r<=1&&l-r>=-1){                return 1+(l>r?l:r);            }else{                return -1;            }        }    }}



阅读全文
0 0
原创粉丝点击