110.Balanced Binary Tree Leetcode解題筆記

來源:互聯網
上載者:User

標籤:discuss   函數   treenode   返回   amp   bool   leetcode   一加   自身   

 

110.Balanced Binary Tree  

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

很早以前做的了  準備把這些筆記都轉移到部落格園上   其一加深理解 其二再打一遍也有好處 

這題大意  給出一個二叉樹 判斷這個二叉樹 是否平衡 平衡的條件為 任意一個節點的左子樹和右子樹高度相差不超過一

思路很簡單  首先要有一個得出樹高度的函數

節點為空白 樹高度為零  否則樹的高度為左子樹的高度和右子樹的高度中最大的那個加一,加一的意思就是加上自身這個節點的高度

判斷左子樹和右子樹高度是否相差大於一  如果大於一 返回一個標記數  可以用-1標記

直接碼代碼

/** * 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) {       return height(root)!=-1;    }    public int height(TreeNode root){        if(root==null)        return 0;        int left=height(root.left);        int right=height(root.right);        if(left==-1||right==-1||Math.abs(left-right)>1)        return -1;        return Math.max(left,right)+1;    }}

  一次過了 

看看 detail

2ms  感覺有點長了 我覺得應該是0ms層級的

慣例  學習別人的優秀解法  看看discuss 裡最受歡迎的那個

public class Solution {    public boolean isBalanced(TreeNode root) {        if(null == root) {            return true;        }                return Math.abs(height(root.left) - height(root.right)) < 2 && isBalanced(root.left) && isBalanced(root.right);    }        public int height(TreeNode root) {        if(null == root) {            return 0;        }                return 1 + Math.max(height(root.left), height(root.right));    }}

 恩  其實和我的思路一樣 只是寫法不同  ~

 

110.Balanced Binary Tree Leetcode解題筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.