update
This commit is contained in:
@@ -8,6 +8,12 @@
|
||||
* 2个链表相交
|
||||
* 2个链表合并
|
||||
|
||||
常用解题思路
|
||||
|
||||
* 双指针
|
||||
* 3指针
|
||||
* 快慢指针
|
||||
|
||||
|
||||
## 判断俩个链表是否相交
|
||||
|
||||
@@ -60,8 +66,18 @@ Node * sort_link_list_increasing_order (Node *pheader):
|
||||
|
||||
|
||||
## 给定单链表,检测是否有环。
|
||||
|
||||
使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。
|
||||
|
||||
|
||||
```
|
||||
int isLinkCicle(Link *head);
|
||||
```
|
||||
|
||||
解题思路
|
||||
|
||||
1. 暴力
|
||||
2. 空间换时间,用一个HashMap
|
||||
3. 快慢指针: 使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。
|
||||
|
||||
|
||||
|
||||
类似的题有:
|
||||
@@ -82,6 +98,7 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head
|
||||
于是运用题二的方法,我们找到它们的第一个交点即为所求。
|
||||
|
||||
|
||||
|
||||
## 删除链表中的p节点
|
||||
|
||||
只给定单链表中某个结点p(并非最后一个结点,即p->next!=NULL)指针,删除该结点。
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
|
||||
分析:
|
||||
1. 不能使用循环,那就用递归
|
||||
2. 递归需要终止递归的条件判断语句,这里也不能用if,想其他办法,可以使用 &&逻辑与 运算符(在n>0条件满足是,才会指向后面的递归语句
|
||||
2. 递归需要终止递归的条件判断语句,这里也不能用if,想其他办法,可以使用 &&逻辑与 运算符(在n>0条件满足是,才会指向后面的递归语句)
|
||||
|
||||
```
|
||||
int (n){
|
||||
int sum(n){
|
||||
int sum=0;
|
||||
(n>0) && sum=n+factorial(n-1)
|
||||
return sum;
|
||||
@@ -28,6 +28,9 @@ int (n){
|
||||
|
||||
## 大数阶乘(factorial)
|
||||
|
||||
> 阶乘 n*(n-1)*(n-2)*...*1
|
||||
|
||||
主要考虑算出来的结果肯定会大于int表达的范围,这时候怎么处理?
|
||||
|
||||
```
|
||||
int factorial(n){
|
||||
|
||||
@@ -56,7 +56,7 @@ long long sum(unsigned int n);
|
||||
|
||||
|
||||
```
|
||||
int sum(int,int)
|
||||
int sum(int a,int b
|
||||
```
|
||||
|
||||
|
||||
@@ -72,20 +72,6 @@ int ugly(int n)
|
||||
|
||||
|
||||
|
||||
### 把字符串转换成整数
|
||||
|
||||
比如 "12343567754" -> 12343567754
|
||||
|
||||
|
||||
`NULL,空串,正负号,溢出`
|
||||
|
||||
|
||||
```
|
||||
int strToInt(char str);
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
# 字符串
|
||||
|
||||
@@ -102,6 +88,18 @@ void replace_blank(char *str);
|
||||
```
|
||||
|
||||
|
||||
### 把字符串转换成整数
|
||||
|
||||
比如 "12343567754" -> 12343567754
|
||||
|
||||
|
||||
`NULL,空串,正负号,溢出`
|
||||
|
||||
|
||||
```
|
||||
int strToInt(char str);
|
||||
```
|
||||
|
||||
|
||||
### 第一个只出现一次的字符
|
||||
|
||||
|
||||
@@ -8,17 +8,18 @@
|
||||
4. 数学之趣: 一些数学问题
|
||||
|
||||
《剑指offer》中已经出现的题目先不写了
|
||||
|
||||
### 游戏之乐
|
||||
|
||||
####
|
||||
|
||||
# 游戏之乐
|
||||
|
||||
|
||||
### 数字之魅
|
||||
|
||||
|
||||
# 数字之魅
|
||||
|
||||
|
||||
#### 二进制数中1的个数
|
||||
|
||||
|
||||
#### 阶乘
|
||||
|
||||
|
||||
@@ -74,7 +75,7 @@
|
||||
|
||||
|
||||
|
||||
### 结构之法
|
||||
# 结构之法
|
||||
|
||||
|
||||
#### 字符串移位包含的问题
|
||||
@@ -110,8 +111,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
### 数学之趣
|
||||
# 数学之趣
|
||||
|
||||
|
||||
####
|
||||
|
||||
Reference in New Issue
Block a user