劍指Offer55 平衡二叉樹

2021-10-21 02:42:38 字數 529 閱讀 8896

1.後序遍歷:

後序遍歷就是從樹的最下層往上處理

//寫法1:通過全域性變數res標識,由於判斷條件只有abs(lheight - rheight),即便res=false,即從下往行的過程中某棵子樹已經不平衡了,依然要遍歷全部節點

//時間o(n):必須遍歷全部節點, 空間o(n):最壞情況退化為鍊錶時,遞迴深度為節點總數n

class

solution

bool

isbalanced

(treenode* root)};

//寫法2:最優解,通過特殊的返回值-1標識,當左子樹遍歷完就判斷一下,如果左子樹不平衡了,就不用遞迴右子樹了

//時間o(n):最壞情況,直到根節點才發現不平衡,通常情況o(n/2),空間o(n):最壞情況退化為鍊錶時,遞迴深度為節點總數n

class

solution

bool

isbalanced

(treenode* root)

};

劍指offer 55 二叉樹的深度 平衡二叉樹

struct treenode class solution 判斷是否是平衡二叉樹,需要乙個bool和乙個高度 如果左右子樹不是平衡二叉樹則直接返回false 如果左右子樹是平衡二叉樹,那就判斷當前是否是平衡二叉樹 需要左右子樹的高度差絕對值小於等於1,則是平衡二叉樹,否則不是 class solu...

劍指Offer 55 二叉樹的深度

輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。樣例輸入 二叉樹 8,12,2,null,null,6,4,null,null,null,null 輸出 3 definition for a binary tree no...

劍指offer55二叉樹的深度

使用bfs 與 dfs 兩種方法進行計算 dfs 迭代思想,一直走到底,尋找能走的最長路線。definition for a binary tree node.struct treenode class solution c definition for a binary tree node.str...