104
class Solution {
public:
int height(TreeNode* root) {
if (root == NULL) {
return 0;
} else {
return max(height(root->left), height(root->right)) + 1;
}
}
bool isBalanced(TreeNode* root) {
if (root == NULL) {
return true;
} else {
return abs(height(root->left) - height(root->right)) <= 1 && isBalanced(root->left) && isBalanced(root->right);
}
}
};
257
class Solution {
public:
void getTraval(TreeNode*cur,vector<int>& path,vector<string>& res){
path.push_back(cur->val);
if(cur->left == NULL && cur->right == NULL){
string tmp;
for (int i = 0; i < path.size()-1;++i) {
tmp += to_string(path[i]);
tmp += "->";
}
tmp += to_string(path[path.size()-1]);
res.push_back(tmp); // 收集一个路径
return;
}
if(cur->left){
getTraval(cur->left, path, res);
path.pop_back();
}
if(cur->right){
getTraval(cur->right, path, res);
path.pop_back();
}
}
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> res;
vector<int> path;
if(root == NULL){
return res;
}
getTraval(root, path, res);
return res;
}
};
404
class Solution {
public:
int sum = 0;
int sumOfLeftLeaves(TreeNode* root) {
if(root==NULL) return 0;
if(root->left!=NULL && root->left->left==NULL && root->left->right== NULL)
sum += root->left->val;
sumOfLeftLeaves(root->left);
sumOfLeftLeaves(root->right);
return sum;
}
};