104,二叉树的最大深度.
题目:给定一个二叉树,找出其最大深度。
二叉树的深度为跟节点到最远叶子节点的最长路径的节点数。
注:叶子节点是指没有子节点的节点。
题解代码如下:
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root == NULL){
return 0;
}
return max(maxDepth(root->left),maxDepth(root->right))+1;
}
};
运行结果如下:
62,不同路径
题目:
代码题解如下:
class Solution {
public int uniquePaths(int m, int n) {
int[][] dp = new int[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 || j == 0)
dp[i][j] = 1;
else {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
return dp[m - 1][n - 1];
}
}
运行结果如下:
剑指offer 16,数值的整数次方
实现pow(x,n),即计算x的n次幂函数。不得使用库函数,同时不需要考虑大数问题。
解题代码如下:
class Solution {
public double myPow(double x, int n) {
if(n == 0) return 1;
if(n == 1) return x;
if(n == -1) return 1 / x;
double half = myPow(x, n / 2);
double mod = myPow(x, n % 2);
return half * half * mod;
}
}
运行结果截图如下: