[LeetCode]110. Balanced Binary Tree
来源:互联网 发布:centos mini desktop 编辑:程序博客网 时间:2024/06/08 20:13
[LeetCode]110. Balanced Binary Tree
题目描述
、
思路
深搜
初始化为true
当比较左右子树节点差的绝对值大于1的时候赋值为false
代码
#include <iostream>#include <vector>#include <queue>#include <algorithm>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: TreeNode* vectorToTree(vector<int> nums){ if (nums.empty()) return NULL; TreeNode* root = new TreeNode(nums[0]); queue<TreeNode*> q; q.push(root); for (int i = 1; i < nums.size();) { int curSize = q.size(); while (curSize--) { TreeNode* node = q.front(); q.pop(); if (nums[i]) { node->left = new TreeNode(nums[i]); q.push(node->left); } else node->left = NULL; ++i; if (i == nums.size()) break; if (nums[i]) { node->right = new TreeNode(nums[i]); q.push(node->right); } else node->right = NULL; ++i; if (i == nums.size()) break; } } return root; } bool isBalanced(TreeNode* root) { maxDepth(root); return flag; } int maxDepth(TreeNode* root) { if (root == NULL) return 0; int leftDepth = maxDepth(root->left), rightDepth = maxDepth(root->right); if (abs(leftDepth - rightDepth) > 1) flag = false; return max(leftDepth + 1, rightDepth + 1); }private: bool flag = true;};int main() { vector<int> nums = { 1, 0, 1, 1 }; Solution s; TreeNode* root = s.vectorToTree(nums); cout << s.isBalanced(root) << endl; system("pause"); return 0;}
0 0
- LeetCode 110. Balanced Binary Tree
- [LeetCode]110.Balanced Binary Tree
- 【LeetCode】110.Balanced Binary Tree
- [Leetcode] 110. Balanced Binary Tree
- LeetCode --- 110. Balanced Binary Tree
- [leetcode] 110.Balanced Binary Tree
- [leetcode]110. Balanced Binary Tree
- LeetCode:110. Balanced Binary Tree
- 110. Balanced Binary Tree LeetCode
- [LeetCode]110. Balanced Binary Tree
- Leetcode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- LeetCode *** 110. Balanced Binary Tree
- leetcode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- LeetCode 110. Balanced Binary Tree
- #leetcode#110. Balanced Binary Tree
- leetcode-110. Balanced Binary Tree
- 如何要在Swift工程中调用OC文件 以及 如何调用某个类的方法
- java工厂模式编写小游戏
- Redis缓存命令整理—Hash(哈希表)操作命令
- 小鸦
- JavaEE学习笔记--JavaScript(2)
- [LeetCode]110. Balanced Binary Tree
- 使用VirtualBox和Vagrant搭建Linux开发环境
- 100道前端面试题02
- 2017年4月28日工作日记
- Extjs GridPanel用法详解
- Ubuntu提示 /boot 分区空间不足解决方法
- 高并发Java 六 JDK并发包2
- 基于Spark UI性能优化与调试——初级篇
- hibernate 的参数绑定