当前位置: 代码迷 >> 综合 >> leetcode Balanced Binary Tree 后序遍历思想避免重复遍历结点
  详细解决方案

leetcode Balanced Binary Tree 后序遍历思想避免重复遍历结点

热度:16   发布时间:2024-01-14 06:30:13.0

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.

用一个变量保存当前结点的深度

/*** Definition for binary tree* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isBalanced(TreeNode *root) {int depth = 0;return isBalance(root,&depth);}bool isBalance(TreeNode* root, int* depth) {if(root == NULL) {*depth = 0;return true;}int left,right;if(isBalance(root->left,&left) && isBalance(root->right,&right)) {int dif = left-right;if(dif<=1 && dif>=-1) {*depth = left>right?left+1:right+1;return true;}}return false;}
};


  相关解决方案