mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 07:35:35 +08:00
Merge pull request #2543 from QinHaoting/master
0104二叉树的最大深度 C语言迭代法(后序遍历) && 0055右旋字符串 C语言
This commit is contained in:
@ -829,7 +829,42 @@ int maxDepth(struct TreeNode* root){
|
|||||||
return depth;
|
return depth;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
二叉树最大深度迭代——后序遍历实现
|
||||||
|
```c
|
||||||
|
int maxDepth(struct TreeNode *root)
|
||||||
|
{
|
||||||
|
if(root == NULL)
|
||||||
|
return 0;
|
||||||
|
struct TreeNode *stack[10000] = {};
|
||||||
|
int top = -1;
|
||||||
|
struct TreeNode *p = root, *r = NULL; // r指向上一个被访问的结点
|
||||||
|
int depth = 0, maxDepth = -1;
|
||||||
|
while(p != NULL || top >= 0)
|
||||||
|
{
|
||||||
|
if(p != NULL)
|
||||||
|
{
|
||||||
|
stack[++top] = p;
|
||||||
|
depth++;
|
||||||
|
p = p->left;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p = stack[top];
|
||||||
|
if(p->right != NULL && p->right != r) // 右子树未被访问
|
||||||
|
p = p->right;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(depth >= maxDepth) maxDepth = depth;
|
||||||
|
p = stack[top--];
|
||||||
|
depth--;
|
||||||
|
r = p;
|
||||||
|
p = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return maxDepth;
|
||||||
|
}
|
||||||
|
```
|
||||||
### Swift:
|
### Swift:
|
||||||
|
|
||||||
104.二叉树的最大深度
|
104.二叉树的最大深度
|
||||||
|
@ -253,6 +253,47 @@ func main(){
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### C:
|
||||||
|
```C
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
void reverse(char *s, int left, int right)
|
||||||
|
{
|
||||||
|
while(left <= right)
|
||||||
|
{
|
||||||
|
char c = s[left];
|
||||||
|
s[left] = s[right];
|
||||||
|
s[right] = c;
|
||||||
|
left++;
|
||||||
|
right--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void rightRotate(char *s, int k)
|
||||||
|
{
|
||||||
|
int len = strlen(s);
|
||||||
|
// 先局部反转再整体反转
|
||||||
|
reverse(s, 0, len - k - 1); // 反转前部分
|
||||||
|
reverse(s, len - k, len - 1); // 反转后部分:后k位
|
||||||
|
reverse(s, 0, len - 1); // 整体反转
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
int k;
|
||||||
|
scanf("%d", &k);
|
||||||
|
char s[10000];
|
||||||
|
scanf("%s", s);
|
||||||
|
|
||||||
|
rightRotate(s, k);
|
||||||
|
printf("%s\n", s);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### JavaScript:
|
### JavaScript:
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user