week12
111 - 二叉树的最小深度
class Solution {
public:
int minDepth(TreeNode* root) {
if(root == nullptr) return 0;
return dfs(root);
}
int dfs(TreeNode* root)
{
if(!root->left && !root->right) return 1; // 叶子节点
int l = INT_MAX, r = INT_MAX; // 限制只有一侧为空的情况
if(root->left) l = dfs(root->left);
if(root->right) r = dfs(root->right);
return min(l, r) + 1;
}
};112 - 路径总和
class Solution {
public:
bool hasPathSum(TreeNode* root, int sum) {
if(root == nullptr) return false;
if(root->left == nullptr && root->right == nullptr) return sum == root->val;
return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);
}
};113 - 路径总和ii
114 - 二叉树展开为链表

115 - 不同的子序列
116 - 填充每个节点的下一个右侧节点指针

117 - 填充每个节点的下一个右侧节点指针ii
118 - 杨辉三角
119 - 杨辉三角ii
120 - 三角形最小路径和
Last updated