[劍指offer]平衡二叉樹
題目描述
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。分析:平衡二叉樹是一顆空樹或者左右子樹的高度差不超過1。感覺我用的方法很蠢。。就是按照定義的左右子樹的高度差求出來再判斷。。
程式碼:
class Solution { public: int getDepth(TreeNode* pRoot){ if(pRoot==nullptr) return 0; return 1+max(getDepth(pRoot->left),getDepth(pRoot->right)); } bool IsBalanced_Solution(TreeNode* pRoot) { if(pRoot==nullptr) return true; int left=getDepth(pRoot->left); int right=getDepth(pRoot->right); if(left==right||left==right+1||right==left+1) return true; return false; } };
相關推薦
劍指Offer - 平衡二叉樹
log public oot com int 技術 pos item span https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&tPa
劍指Offer-平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return getDepth(root)
劍指offer——平衡二叉樹判定
針對於樹的操作,大部分都是用遞迴操作的,根據遞迴運算,要確定重複迴圈的過程以及截止條件,不過針對二叉樹,還是比較難思考的。 class Solution: res=True def IsBalance_Solution(self,pRoot): self.judge(pRoot)
劍指offer 平衡二叉樹 python實現
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.rig
[劍指offer]平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 分析:平衡二叉樹是一顆空樹或者左右子樹的高度差不超過1。感覺我用的方法很蠢。。就是按照定義的左右子樹的高度差求出來再判斷。。 程式碼:
劍指offer—平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 public class Solution { private boolean isBanlanced = true; public boolean IsBalanced_Soluti
劍指offer -- 平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 如果一棵樹是平衡二叉樹則返回該樹的高度,否則返回-1 對於一棵樹只要判斷其左右子樹均為平衡二叉樹且高度相差不超過1則為平衡二叉樹 public cl
[劍指offer] 平衡二叉樹
本文首發於我的個人部落格:尾尾部落 題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 解題思路 定義:平衡二叉查詢樹,簡稱平衡二叉樹。 可以是空樹。 假如不是空樹,任何一
劍指Offer | 平衡二叉樹
一、題目 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 二、講解 (1)平衡二叉樹 平衡二叉樹(Balanced Binary Tree)又被稱為AVL樹(有別於AVL演算法),且具有以下性質: 它是一棵空樹或它的左右兩個子樹的高度差的絕對
劍指offer——平衡二叉樹
題目描述: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 思路: 所謂平衡二叉樹就對某個結點來講,其左子樹的深度與右子樹深度的絕對值不超過1。由於需要對每個節點進行判斷,所以可以採用遞迴的思路進行解決。具體思路是:先求出根節點的左右子樹的深度,並對兩
劍指offer:判斷二叉樹是不是平衡二叉樹(java)
題目:輸入一棵二叉樹的根節點,判斷該樹是不是平衡的二叉樹。如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。 有了求二叉樹的深度的經驗之後再解決這個問題,我們很容易就能想到一個思路:在遍歷樹的每個結點的時候,呼叫函式TreeDepth得到
劍指Offer: 二叉樹的深度、平衡二叉樹
二叉樹的深度 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 /* struct TreeNode { int val; struct TreeNode *
劍指offer之 二叉樹鏡像
tno eno 描述 temp 結點 輸出 urn tree 定義 package Problem19; /* * 問題描述: * 請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像; */ //定義二叉樹的結構 class BinaryTreeNode {
劍指Offer——重建二叉樹
urn return 重復 col 分割 init 樹的遍歷 ++ fin 題目描述: 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,
劍指Offer——把二叉樹打印成多行
blog queue 隊列 int 利用 vector ont str logs 題目描述: 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 分析: 二叉樹的層次遍歷,利用隊列。 代碼: 1 /* 2 struct TreeNode { 3
劍指offer-25.二叉樹中和為某一值的路徑
path val tmp aux node ptr body 深度 light 0 題目 輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 1 分析 深度優先遍歷+回溯. 出點就是,
劍指Offer:二叉樹打印成多行【23】
tree height -- main lis true evel width pac 劍指Offer:二叉樹打印成多行【23】 題目描述 從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 題目分析 Java題解 package tree; i
劍指offer--重建二叉樹
lag node rec 劍指offer == str eno truct 個數字 題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4
劍指offer ——重建二叉樹
數字 分析 nal nod 遍歷 中序遍歷 i++ algorithm vector p62 輸入前序和中序遍歷的結果(不包含重復的數字),重建二叉樹。 主要是分析兩個序列的規律,然後用遞歸的方式找到每一個根節點,從而完成構建。 #include<iostream&
python劍指offer系列二叉樹中和為某一值的路徑
not 和為某一值的路徑 python 數組長度 self. expect pytho def lis 題目描述 輸入一顆二叉樹的跟節點和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(註意: