国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

二叉平衡樹

2019-11-10 22:45:47
字體:
供稿:網(wǎng)友

分治,遞歸。 這道題有兩種好方法。

方法1:先有一個求深度depth的函數(shù),然后遞歸比較各個節(jié)點的depth之差,返回結(jié)果。

C++代碼:

class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ int maxPathSum(TreeNode *root) { // write your code here int ret = INT_MIN; onePath(root,ret); return ret; } int onePath(TreeNode* root,int&ret) { if(root==nullptr) return 0; int l = onePath(root->left,ret); int r = onePath(root->right,ret); ret = max(ret,max(0,l)+max(0,r)+root->val); return max(0,max(l,r))+root->val; } }; 方法2:深度優(yōu)先搜索根節(jié)點,遇到不合格的節(jié)點,及時反饋,這樣可以迅速得出結(jié)果,時間復(fù)雜度小。

C++ 代碼:

/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */class Solution {public: /** * @param root: The root of binary tree. * @return: True if this Binary tree is Balanced, or false. */ bool isBalanced(TreeNode *root) { if (root == NULL) { return true; } if (dfs(root)>0) { return true; } return false; } int dfs(TreeNode * root) { if (root==NULL) { return 0; } int left = dfs(root->left); int right = dfs(root->right); if (left<0 || right<0 || abs(left-right)>1) { return -1; } return max(left,right) + 1; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 田阳县| 德昌县| 左贡县| 保亭| 保定市| 威宁| 贺州市| 澳门| 南华县| 北安市| 南开区| 铜鼓县| 桂林市| 拉萨市| 泗阳县| 海城市| 嵊泗县| 五大连池市| 灵山县| 新河县| 青岛市| 甘德县| 郸城县| 萝北县| 都安| 封开县| 皮山县| 义马市| 渭源县| 常熟市| 佛冈县| 青海省| 西盟| 遵义县| 天津市| 上蔡县| 马尔康县| 长春市| 麻江县| 长白| 黑水县|