From a8b66cd5ae1e41be4a3d774bc7e5df5f3d0c6754 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 29 Jul 2021 02:33:38 +0000
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84=20?=
=?UTF-8?q?=E3=80=90Github=20Actions=E3=80=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../leetcode33不完全有序查找目标元素(不包含重复值).md | 2 +-
.../leetcode35搜索插入位置.md | 8 +-
.../二叉树/二叉树中序遍历(迭代).md | 6 +-
.../二叉树/二叉树的前序遍历(栈).md | 4 +-
.../二叉树/二叉树的后续遍历 (迭代).md | 2 +-
.../单调队列单调栈/leetcode739每日温度.md | 1 +
.../单调队列单调栈/剑指offer59队列的最大值.md | 2 +-
animation-simulation/单调队列单调栈/最小栈.md | 1 +
.../leetcode1438绝对值不超过限制的最长子数组.md | 2 -
.../数组篇/leetcode1两数之和.md | 2 -
.../数组篇/leetcode219数组中重复元素2.md | 5 +-
.../数组篇/leetcode27移除元素.md | 2 -
.../数组篇/leetcode41缺失的第一个正数.md | 2 -
.../数组篇/leetcode485最大连续1的个数.md | 3 +-
.../数组篇/leetcode54螺旋矩阵.md | 4 +-
.../数组篇/leetcode560和为K的子数组.md | 1 -
.../数组篇/leetcode59螺旋矩阵2.md | 4 +-
animation-simulation/数组篇/leetcode66加一.md | 7 +-
.../数组篇/leetcode75颜色分类.md | 23 ++---
.../数组篇/剑指offer3数组中重复的数.md | 4 +-
.../数组篇/长度最小的子数组.md | 2 -
animation-simulation/求和问题/三数之和.md | 2 -
animation-simulation/求和问题/四数之和.md | 4 -
.../求次数问题/只出现一次的数.md | 5 +-
.../求次数问题/只出现一次的数2.md | 2 +-
animation-simulation/链表篇/234. 回文链表.md | 97 +++++++++----------
.../链表篇/leetcode141环形链表.md | 2 -
.../链表篇/leetcode142环形链表2.md | 2 -
.../链表篇/leetcode147对链表进行插入排序.md | 2 -
.../链表篇/leetcode206反转链表.md | 26 ++---
.../链表篇/leetcode328奇偶链表.md | 26 ++---
.../leetcode82删除排序链表中的重复元素II.md | 2 -
.../链表篇/leetcode86分隔链表.md | 2 -
.../链表篇/leetcode92反转链表2.md | 2 -
.../链表篇/剑指Offer25合并两个排序的链表.md | 2 -
.../链表篇/剑指offer22倒数第k个节点.md | 2 -
.../链表篇/面试题 02.03. 链表中间节点.md | 2 -
.../链表篇/面试题 02.05. 链表求和.md | 2 -
38 files changed, 110 insertions(+), 159 deletions(-)
diff --git a/animation-simulation/二分查找及其变种/leetcode33不完全有序查找目标元素(不包含重复值).md b/animation-simulation/二分查找及其变种/leetcode33不完全有序查找目标元素(不包含重复值).md
index c9f6a73..b5fc1dd 100644
--- a/animation-simulation/二分查找及其变种/leetcode33不完全有序查找目标元素(不包含重复值).md
+++ b/animation-simulation/二分查找及其变种/leetcode33不完全有序查找目标元素(不包含重复值).md
@@ -157,4 +157,4 @@ func search(nums []int, target int) int {
}
```
-##
+##
diff --git a/animation-simulation/二分查找及其变种/leetcode35搜索插入位置.md b/animation-simulation/二分查找及其变种/leetcode35搜索插入位置.md
index 235ebb6..2a051ca 100644
--- a/animation-simulation/二分查找及其变种/leetcode35搜索插入位置.md
+++ b/animation-simulation/二分查找及其变种/leetcode35搜索插入位置.md
@@ -2,7 +2,7 @@
>
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
>
-> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
+> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
#### [35. 搜索插入位置](https://leetcode-cn.com/problems/search-insert-position/)
@@ -52,10 +52,10 @@ class Solution {
//查询成功
if (target == nums[mid]) {
return mid;
- //右区间
+ //右区间
} else if (nums[mid] < target) {
- left = mid + 1;
- //左区间
+ left = mid + 1;
+ //左区间
} else if (nums[mid] > target) {
right = mid - 1;
}
diff --git a/animation-simulation/二叉树/二叉树中序遍历(迭代).md b/animation-simulation/二叉树/二叉树中序遍历(迭代).md
index 4a5c188..fbfb0eb 100644
--- a/animation-simulation/二叉树/二叉树中序遍历(迭代).md
+++ b/animation-simulation/二叉树/二叉树中序遍历(迭代).md
@@ -34,7 +34,7 @@ class Solution {
TreeNode cur = new TreeNode(-1);
cur = root;
Stack stack = new Stack<>();
- while (!stack.isEmpty() || cur != null) {
+ while (!stack.isEmpty() || cur != null) {
//找到当前应该遍历的那个节点
while (cur != null) {
stack.push(cur);
@@ -47,7 +47,7 @@ class Solution {
cur = temp.right;
}
return arr;
- }
+ }
}
```
@@ -104,4 +104,4 @@ func inorderTraversal(root *TreeNode) []int {
}
```
-###
+###
diff --git a/animation-simulation/二叉树/二叉树的前序遍历(栈).md b/animation-simulation/二叉树/二叉树的前序遍历(栈).md
index 82cad7d..1675589 100644
--- a/animation-simulation/二叉树/二叉树的前序遍历(栈).md
+++ b/animation-simulation/二叉树/二叉树的前序遍历(栈).md
@@ -49,10 +49,10 @@ class Solution {
public List preorderTraversal(TreeNode root) {
List list = new ArrayList<>();
Stack stack = new Stack<>();
- if (root == null) return list;
+ if (root == null) return list;
stack.push(root);
while (!stack.isEmpty()) {
- TreeNode temp = stack.pop();
+ TreeNode temp = stack.pop();
if (temp.right != null) {
stack.push(temp.right);
}
diff --git a/animation-simulation/二叉树/二叉树的后续遍历 (迭代).md b/animation-simulation/二叉树/二叉树的后续遍历 (迭代).md
index cc6fd8b..a7197a4 100644
--- a/animation-simulation/二叉树/二叉树的后续遍历 (迭代).md
+++ b/animation-simulation/二叉树/二叉树的后续遍历 (迭代).md
@@ -12,7 +12,7 @@
我们知道后序遍历的顺序是,` 对于树中的某节点, 先遍历该节点的左子树, 再遍历其右子树, 最后遍历该节点`。
-那么我们如何利用栈来解决呢?
+那么我们如何利用栈来解决呢?
我们直接来看动画,看动画之前,但是我们`需要带着问题看动画`,问题搞懂之后也就搞定了后序遍历。
diff --git a/animation-simulation/单调队列单调栈/leetcode739每日温度.md b/animation-simulation/单调队列单调栈/leetcode739每日温度.md
index 9ba0b91..0ce27a7 100644
--- a/animation-simulation/单调队列单调栈/leetcode739每日温度.md
+++ b/animation-simulation/单调队列单调栈/leetcode739每日温度.md
@@ -80,3 +80,4 @@ func dailyTemperatures(temperatures []int) []int {
}
return arr
}
+```
diff --git a/animation-simulation/单调队列单调栈/剑指offer59队列的最大值.md b/animation-simulation/单调队列单调栈/剑指offer59队列的最大值.md
index 86044b7..f33c7ea 100644
--- a/animation-simulation/单调队列单调栈/剑指offer59队列的最大值.md
+++ b/animation-simulation/单调队列单调栈/剑指offer59队列的最大值.md
@@ -111,7 +111,7 @@ func (mq *MaxQueue) Is_empty() bool {
return mq.size == 0
}
-// Max_value 取最大值值,返回我们双端队列的对头即可,因为我们双端队列是单调递减的嘛
+// Max_value 取最大值值,返回我们双端队列的对头即可,因为我们双端队列是单调递减的嘛
func (mq *MaxQueue) Max_value() int {
if mq.Is_empty() { return -1 }
return mq.deq[0]
diff --git a/animation-simulation/单调队列单调栈/最小栈.md b/animation-simulation/单调队列单调栈/最小栈.md
index 56b09ce..76b0fb8 100644
--- a/animation-simulation/单调队列单调栈/最小栈.md
+++ b/animation-simulation/单调队列单调栈/最小栈.md
@@ -116,4 +116,5 @@ func (m *MinStack) GetMin() int {
return m.minStk[len(m.minStk) - 1]
}
```
+
###
diff --git a/animation-simulation/数组篇/leetcode1438绝对值不超过限制的最长子数组.md b/animation-simulation/数组篇/leetcode1438绝对值不超过限制的最长子数组.md
index 04f3e92..fa6a044 100644
--- a/animation-simulation/数组篇/leetcode1438绝对值不超过限制的最长子数组.md
+++ b/animation-simulation/数组篇/leetcode1438绝对值不超过限制的最长子数组.md
@@ -261,7 +261,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -304,4 +303,3 @@ func max(a, b int) int {
return b
}
```
-
diff --git a/animation-simulation/数组篇/leetcode1两数之和.md b/animation-simulation/数组篇/leetcode1两数之和.md
index 27e672e..13689b8 100644
--- a/animation-simulation/数组篇/leetcode1两数之和.md
+++ b/animation-simulation/数组篇/leetcode1两数之和.md
@@ -203,7 +203,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -218,4 +217,3 @@ func twoSum(nums []int, target int) []int {
return []int{}
}
```
-
diff --git a/animation-simulation/数组篇/leetcode219数组中重复元素2.md b/animation-simulation/数组篇/leetcode219数组中重复元素2.md
index d0fce1b..d40dc16 100644
--- a/animation-simulation/数组篇/leetcode219数组中重复元素2.md
+++ b/animation-simulation/数组篇/leetcode219数组中重复元素2.md
@@ -45,7 +45,7 @@ class Solution {
if (map.containsKey(nums[i])) {
//判断是否小于K,如果小于等于则直接返回
int abs = Math.abs(i - map.get(nums[i]));
- if (abs <= k) return true;//小于等于则返回
+ if (abs <= k) return true;//小于等于则返回
}
//更新索引,此时有两种情况,不存在,或者存在时,将后出现的索引保存
map.put(nums[i],i);
@@ -72,7 +72,7 @@ class Solution:
# 判断是否小于K,如果小于等于则直接返回
a = abs(i - m[nums[i]])
if a <= k:
- return True# 小于等于则返回
+ return True# 小于等于则返回
# 更新索引,此时有两种情况,不存在,或者存在时,将后出现的索引保存
m[nums[i]] = i
return False
@@ -243,4 +243,3 @@ func containsNearbyDuplicate(nums []int, k int) bool {
return false
}
```
-
diff --git a/animation-simulation/数组篇/leetcode27移除元素.md b/animation-simulation/数组篇/leetcode27移除元素.md
index 128ad7e..1afe632 100644
--- a/animation-simulation/数组篇/leetcode27移除元素.md
+++ b/animation-simulation/数组篇/leetcode27移除元素.md
@@ -183,7 +183,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -203,4 +202,3 @@ func removeElement(nums []int, val int) int {
return i
}
```
-
diff --git a/animation-simulation/数组篇/leetcode41缺失的第一个正数.md b/animation-simulation/数组篇/leetcode41缺失的第一个正数.md
index 5c6deeb..f7458bb 100644
--- a/animation-simulation/数组篇/leetcode41缺失的第一个正数.md
+++ b/animation-simulation/数组篇/leetcode41缺失的第一个正数.md
@@ -274,7 +274,6 @@ public:
};
```
-
Go Code:
```go
@@ -297,4 +296,3 @@ func firstMissingPositive(nums []int) int {
return length + 1
}
```
-
diff --git a/animation-simulation/数组篇/leetcode485最大连续1的个数.md b/animation-simulation/数组篇/leetcode485最大连续1的个数.md
index 501bc85..910b52a 100644
--- a/animation-simulation/数组篇/leetcode485最大连续1的个数.md
+++ b/animation-simulation/数组篇/leetcode485最大连续1的个数.md
@@ -22,7 +22,7 @@
下面我们通过一个视频模拟代码执行步骤大家一下就能搞懂了。
- ![leetcode485最长连续1的个数](https://cdn.jsdelivr.net/gh/tan45du/test1@master/20210122/leetcode485最长连续1的个数.7avzcthkit80.gif)
+![leetcode485最长连续1的个数](https://cdn.jsdelivr.net/gh/tan45du/test1@master/20210122/leetcode485最长连续1的个数.7avzcthkit80.gif)
下面我们直接看代码吧
@@ -231,4 +231,3 @@ func max(a, b int) int {
return b
}
```
-
diff --git a/animation-simulation/数组篇/leetcode54螺旋矩阵.md b/animation-simulation/数组篇/leetcode54螺旋矩阵.md
index b666538..c67cac8 100644
--- a/animation-simulation/数组篇/leetcode54螺旋矩阵.md
+++ b/animation-simulation/数组篇/leetcode54螺旋矩阵.md
@@ -181,7 +181,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -208,7 +207,7 @@ func spiralOrder(matrix [][]int) []int {
}
down--
if top > down { break }
-
+
for i := down; i >= top; i-- {
res = append(res, matrix[i][left])
}
@@ -218,4 +217,3 @@ func spiralOrder(matrix [][]int) []int {
return res
}
```
-
diff --git a/animation-simulation/数组篇/leetcode560和为K的子数组.md b/animation-simulation/数组篇/leetcode560和为K的子数组.md
index 2e339e6..4bd1365 100644
--- a/animation-simulation/数组篇/leetcode560和为K的子数组.md
+++ b/animation-simulation/数组篇/leetcode560和为K的子数组.md
@@ -236,4 +236,3 @@ func subarraySum(nums []int, k int) int {
return cnt
}
```
-
diff --git a/animation-simulation/数组篇/leetcode59螺旋矩阵2.md b/animation-simulation/数组篇/leetcode59螺旋矩阵2.md
index dd5bf29..1b07d43 100644
--- a/animation-simulation/数组篇/leetcode59螺旋矩阵2.md
+++ b/animation-simulation/数组篇/leetcode59螺旋矩阵2.md
@@ -361,7 +361,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -394,7 +393,7 @@ func generateMatrix(n int) [][]int {
}
buttom--
if num > size { break }
-
+
for i := buttom; i >= top; i-- {
res[i][left] = num
num++
@@ -405,4 +404,3 @@ func generateMatrix(n int) [][]int {
return res
}
```
-
diff --git a/animation-simulation/数组篇/leetcode66加一.md b/animation-simulation/数组篇/leetcode66加一.md
index 8e02a98..34822e1 100644
--- a/animation-simulation/数组篇/leetcode66加一.md
+++ b/animation-simulation/数组篇/leetcode66加一.md
@@ -2,7 +2,7 @@
>
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
>
-> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
+> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
#### [66. 加一](https://leetcode-cn.com/problems/plus-one/)
@@ -56,10 +56,10 @@ class Solution {
if (digits[i] != 0) {
return digits;
}
-
+
}
//第三种情况,因为数组初始化每一位都为0,我们只需将首位设为1即可
- int[] arr = new int[len+1];
+ int[] arr = new int[len+1];
arr[0] = 1;
return arr;
}
@@ -138,4 +138,3 @@ func plusOne(digits []int) []int {
return digits
}
```
-
diff --git a/animation-simulation/数组篇/leetcode75颜色分类.md b/animation-simulation/数组篇/leetcode75颜色分类.md
index 669bf80..7fc2400 100644
--- a/animation-simulation/数组篇/leetcode75颜色分类.md
+++ b/animation-simulation/数组篇/leetcode75颜色分类.md
@@ -48,7 +48,7 @@ class Solution {
//这里和三向切分不完全一致
int i = left;
int right = len-1;
-
+
while (i <= right) {
if (nums[i] == 2) {
swap(nums,i,right--);
@@ -57,7 +57,7 @@ class Solution {
} else {
i++;
}
- }
+ }
}
public void swap (int[] nums, int i, int j) {
int temp = nums[i];
@@ -72,7 +72,7 @@ Python3 Code:
```python
from typing import List
class Solution:
- def sortColors(self, nums: List[int]):
+ def sortColors(self, nums: List[int]):
leng = len(nums)
left = 0
# 这里和三向切分不完全一致
@@ -89,7 +89,7 @@ class Solution:
else:
i += 1
return nums
-
+
def swap(self, nums: List[int], i: int, j: int):
temp = nums[i]
nums[i] = nums[j]
@@ -112,7 +112,7 @@ public:
} else {
i++;
}
- }
+ }
}
};
```
@@ -173,8 +173,6 @@ func sortColors(nums []int) {
}
```
-
-
另外我们看这段代码,有什么问题呢?那就是我们即使完全符合时,仍会交换元素,这样会大大降低我们的效率。
例如:[0,0,0,1,1,1,2,2,2]
@@ -203,7 +201,7 @@ class Solution {
int len = nums.length;
int right = len - 1;
for (int i = 0; i <= right; ++i) {
- if (nums[i] == 0) {
+ if (nums[i] == 0) {
swap(nums,i,left);
left++;
}
@@ -216,7 +214,7 @@ class Solution {
}
}
}
-
+
}
public void swap (int[] nums,int i, int j) {
int temp = nums[i];
@@ -246,7 +244,7 @@ class Solution:
# 如果不等于 1 则需要继续判断,所以不移动 i 指针,i--
if nums[i] != 1:
i -= 1
- i += 1
+ i += 1
return nums
def swap(self, nums: List[int], i: int, j: int):
@@ -264,7 +262,7 @@ public:
int left = 0, len = nums.size();
int right = len - 1;
for (int i = 0; i <= right; ++i) {
- if (nums[i] == 0) {
+ if (nums[i] == 0) {
swap(nums[i],nums[left++]);
}
if (nums[i] == 2) {
@@ -291,7 +289,7 @@ class Solution {
//nums.swapAt(i, left) 直接调用系统方法
self.swap(&nums, i, left) // 保持风格统一走自定义交换
left += 1
- }
+ }
if nums[i] == 2 {
//nums.swapAt(i, right) 直接调用系统方法
self.swap(&nums, i, right) // 保持风格统一走自定义交换
@@ -336,4 +334,3 @@ func sortColors(nums []int) {
}
}
```
-
diff --git a/animation-simulation/数组篇/剑指offer3数组中重复的数.md b/animation-simulation/数组篇/剑指offer3数组中重复的数.md
index 188d8cd..0bffd1b 100644
--- a/animation-simulation/数组篇/剑指offer3数组中重复的数.md
+++ b/animation-simulation/数组篇/剑指offer3数组中重复的数.md
@@ -2,7 +2,7 @@
>
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
>
-> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
+> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
#### [剑指 Offer 03. 数组中重复的数字](https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/)
@@ -16,7 +16,7 @@
输入:
[2, 3, 1, 0, 2, 5, 3]
-输出:2 或 3
+输出:2 或 3
#### **HashSet**
diff --git a/animation-simulation/数组篇/长度最小的子数组.md b/animation-simulation/数组篇/长度最小的子数组.md
index c4a9495..f59ad75 100644
--- a/animation-simulation/数组篇/长度最小的子数组.md
+++ b/animation-simulation/数组篇/长度最小的子数组.md
@@ -120,7 +120,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -150,4 +149,3 @@ func min(a, b int) int {
return b
}
```
-
diff --git a/animation-simulation/求和问题/三数之和.md b/animation-simulation/求和问题/三数之和.md
index 50d156e..24dce28 100644
--- a/animation-simulation/求和问题/三数之和.md
+++ b/animation-simulation/求和问题/三数之和.md
@@ -163,7 +163,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -210,4 +209,3 @@ func threeSum(nums []int) [][]int {
return res
}
```
-
diff --git a/animation-simulation/求和问题/四数之和.md b/animation-simulation/求和问题/四数之和.md
index e1a98ef..05524a4 100644
--- a/animation-simulation/求和问题/四数之和.md
+++ b/animation-simulation/求和问题/四数之和.md
@@ -96,7 +96,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -150,6 +149,3 @@ func fourSum(nums []int, target int) [][]int {
return res
}
```
-
-
-
diff --git a/animation-simulation/求次数问题/只出现一次的数.md b/animation-simulation/求次数问题/只出现一次的数.md
index a0c4791..d8a792e 100644
--- a/animation-simulation/求次数问题/只出现一次的数.md
+++ b/animation-simulation/求次数问题/只出现一次的数.md
@@ -228,7 +228,6 @@ class Solution:
return nums[len(nums) - 1]
```
-
Go Code:
```go
@@ -248,8 +247,6 @@ func singleNumber(nums []int) int {
}
```
-
-
### HashSet
#### 解析
@@ -616,7 +613,7 @@ func singleNumber(nums []int) int {
res ^= x
}
return res
-
+
}
```
diff --git a/animation-simulation/求次数问题/只出现一次的数2.md b/animation-simulation/求次数问题/只出现一次的数2.md
index fedf872..7debb54 100644
--- a/animation-simulation/求次数问题/只出现一次的数2.md
+++ b/animation-simulation/求次数问题/只出现一次的数2.md
@@ -2,7 +2,7 @@
>
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
>
-> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
+> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
#### [137. 只出现一次的数字 II](https://leetcode-cn.com/problems/single-number-ii/)
diff --git a/animation-simulation/链表篇/234. 回文链表.md b/animation-simulation/链表篇/234. 回文链表.md
index 10e2404..2e90e76 100644
--- a/animation-simulation/链表篇/234. 回文链表.md
+++ b/animation-simulation/链表篇/234. 回文链表.md
@@ -225,7 +225,7 @@ class Solution {
ListNode backhalf = reverse(midnode.next);
//遍历两部分链表,判断值是否相等
ListNode p1 = head;
- ListNode p2 = backhalf;
+ ListNode p2 = backhalf;
while (p2 != null) {
if (p1.val != p2.val) {
//若要还原,记得这里也要reverse
@@ -234,11 +234,11 @@ class Solution {
}
p1 = p1.next;
p2 = p2.next;
- }
+ }
//还原链表并返回结果,这一步是需要注意的,我们不可以破坏初始结构,我们只是判断是否为回文,
//当然如果没有这一步也是可以AC,但是面试的时候题目要求可能会有这一条。
midnode.next = reverse(backhalf);
- return true;
+ return true;
}
//找到中点
public ListNode searchmidnode (ListNode head) {
@@ -247,7 +247,7 @@ class Solution {
while (fast.next != null && fast.next.next != null) {
fast = fast.next.next;
slow = slow.next;
- }
+ }
return slow;
}
//翻转链表
@@ -282,7 +282,7 @@ public:
ListNode * backhalf = reverse(midnode->next);
//遍历两部分链表,判断值是否相等
ListNode * p1 = head;
- ListNode * p2 = backhalf;
+ ListNode * p2 = backhalf;
while (p2 != nullptr) {
if (p1->val != p2->val) {
//若要还原,记得这里也要reverse
@@ -291,11 +291,11 @@ public:
}
p1 = p1->next;
p2 = p2->next;
- }
+ }
//还原链表并返回结果,这一步是需要注意的,我们不可以破坏初始结构,我们只是判断是否为回文,
//当然如果没有这一步也是可以AC,但是面试的时候题目要求可能会有这一条。
midnode->next = reverse(backhalf);
- return true;
+ return true;
}
//找到中间的部分
ListNode * searchmidnode (ListNode * head) {
@@ -304,7 +304,7 @@ public:
while (fast->next != nullptr && fast->next->next != nullptr) {
fast = fast->next->next;
slow = slow->next;
- }
+ }
return slow;
}
//翻转链表
@@ -326,55 +326,55 @@ JS Code:
```javascript
var isPalindrome = function (head) {
- if (head === null || head.next === null) {
- return true;
- }
- //找到中间节点,也就是翻转的头节点,这个在昨天的题目中讲到
- //但是今天和昨天有一些不一样的地方就是,如果有两个中间节点返回第一个,昨天的题目是第二个
- let midnode = searchmidnode(head);
- //原地翻转链表,需要两个辅助指针。这个也是面试题目,大家可以做一下
- //这里我们用的是midnode.next需要注意,因为我们找到的是中点,但是我们翻转的是后半部分
- let backhalf = reverse(midnode.next);
- //遍历两部分链表,判断值是否相等
- let p1 = head;
- let p2 = backhalf;
- while (p2 != null) {
- if (p1.val != p2.val) {
- //若要还原,记得这里也要reverse
- midnode.next = reverse(backhalf);
- return false;
- }
- p1 = p1.next;
- p2 = p2.next;
- }
- //还原链表并返回结果,这一步是需要注意的,我们不可以破坏初始结构,我们只是判断是否为回文,
- //当然如果没有这一步也是可以AC,但是面试的时候题目要求可能会有这一条。
- midnode.next = reverse(backhalf);
+ if (head === null || head.next === null) {
return true;
+ }
+ //找到中间节点,也就是翻转的头节点,这个在昨天的题目中讲到
+ //但是今天和昨天有一些不一样的地方就是,如果有两个中间节点返回第一个,昨天的题目是第二个
+ let midnode = searchmidnode(head);
+ //原地翻转链表,需要两个辅助指针。这个也是面试题目,大家可以做一下
+ //这里我们用的是midnode.next需要注意,因为我们找到的是中点,但是我们翻转的是后半部分
+ let backhalf = reverse(midnode.next);
+ //遍历两部分链表,判断值是否相等
+ let p1 = head;
+ let p2 = backhalf;
+ while (p2 != null) {
+ if (p1.val != p2.val) {
+ //若要还原,记得这里也要reverse
+ midnode.next = reverse(backhalf);
+ return false;
+ }
+ p1 = p1.next;
+ p2 = p2.next;
+ }
+ //还原链表并返回结果,这一步是需要注意的,我们不可以破坏初始结构,我们只是判断是否为回文,
+ //当然如果没有这一步也是可以AC,但是面试的时候题目要求可能会有这一条。
+ midnode.next = reverse(backhalf);
+ return true;
};
//找到中点
var searchmidnode = function (head) {
- let fast = head;
- let slow = head;
- while (fast.next != null && fast.next.next != null) {
- fast = fast.next.next;
- slow = slow.next;
- }
- return slow;
+ let fast = head;
+ let slow = head;
+ while (fast.next != null && fast.next.next != null) {
+ fast = fast.next.next;
+ slow = slow.next;
+ }
+ return slow;
};
//翻转链表
var reverse = function (slow) {
let low = null;
- let temp = null;
- while (slow != null) {
- temp = slow.next;
- slow.next = low;
- low = slow;
- slow = temp;
- }
- return low;
+ let temp = null;
+ while (slow != null) {
+ temp = slow.next;
+ slow.next = low;
+ low = slow;
+ slow = temp;
+ }
+ return low;
};
```
@@ -492,7 +492,7 @@ func isPalindrome(head *ListNode) bool {
midNode := searchMidNode(head)
backHalf := reverse(midNode.Next)
-
+
// 判断左右两边是否一样(回文)
p1, p2 := head, backHalf
for p2 != nil {
@@ -530,4 +530,3 @@ func reverse(node *ListNode) *ListNode {
return pre
}
```
-
diff --git a/animation-simulation/链表篇/leetcode141环形链表.md b/animation-simulation/链表篇/leetcode141环形链表.md
index 35868da..e8d48f9 100644
--- a/animation-simulation/链表篇/leetcode141环形链表.md
+++ b/animation-simulation/链表篇/leetcode141环形链表.md
@@ -125,7 +125,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -142,4 +141,3 @@ func hasCycle(head *ListNode) bool {
return false
}
```
-
diff --git a/animation-simulation/链表篇/leetcode142环形链表2.md b/animation-simulation/链表篇/leetcode142环形链表2.md
index 215a5a4..4b00fea 100644
--- a/animation-simulation/链表篇/leetcode142环形链表2.md
+++ b/animation-simulation/链表篇/leetcode142环形链表2.md
@@ -298,7 +298,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -322,4 +321,3 @@ func detectCycle(head *ListNode) *ListNode {
return nil
}
```
-
diff --git a/animation-simulation/链表篇/leetcode147对链表进行插入排序.md b/animation-simulation/链表篇/leetcode147对链表进行插入排序.md
index 1595d7a..644be2b 100644
--- a/animation-simulation/链表篇/leetcode147对链表进行插入排序.md
+++ b/animation-simulation/链表篇/leetcode147对链表进行插入排序.md
@@ -258,7 +258,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -289,4 +288,3 @@ func insertionSortList(head *ListNode) *ListNode {
return root.Next
}
```
-
diff --git a/animation-simulation/链表篇/leetcode206反转链表.md b/animation-simulation/链表篇/leetcode206反转链表.md
index c2b4aff..0ab7915 100644
--- a/animation-simulation/链表篇/leetcode206反转链表.md
+++ b/animation-simulation/链表篇/leetcode206反转链表.md
@@ -238,19 +238,19 @@ JS Code:
```javascript
var reverseList = function (head) {
- //结束条件
- if (!head || !head.next) {
- return head;
- }
- //保存最后一个节点
- let pro = reverseList(head.next);
- //将节点进行反转。我们可以这样理解 4.next.next = 4
- //4.next = 5
- //则 5.next = 4 则实现了反转
- head.next.next = head;
- //防止循环
- head.next = null;
- return pro;
+ //结束条件
+ if (!head || !head.next) {
+ return head;
+ }
+ //保存最后一个节点
+ let pro = reverseList(head.next);
+ //将节点进行反转。我们可以这样理解 4.next.next = 4
+ //4.next = 5
+ //则 5.next = 4 则实现了反转
+ head.next.next = head;
+ //防止循环
+ head.next = null;
+ return pro;
};
```
diff --git a/animation-simulation/链表篇/leetcode328奇偶链表.md b/animation-simulation/链表篇/leetcode328奇偶链表.md
index 4ab5b9d..0b1edc7 100644
--- a/animation-simulation/链表篇/leetcode328奇偶链表.md
+++ b/animation-simulation/链表篇/leetcode328奇偶链表.md
@@ -2,7 +2,7 @@
>
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
>
-> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
+> 另外希望手机阅读的同学可以来我的 [**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png) 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)进入。
### [328. 奇偶链表](https://leetcode-cn.com/problems/odd-even-linked-list/)
@@ -21,7 +21,7 @@
示例 2:
-> 输入: 2->1->3->5->6->4->7->NULL
+> 输入: 2->1->3->5->6->4->7->NULL
> 输出: 2->3->6->7->1->5->4->NULL
#### 题目解析
@@ -54,7 +54,7 @@ class Solution {
odd = odd.next;
even.next = odd.next;
even = even.next;
- }
+ }
//链接
odd.next = evenHead;
return head;
@@ -81,7 +81,7 @@ public:
odd = odd->next;
even->next = odd->next;
even = even->next;
- }
+ }
//链接
odd->next = evenHead;
return head;
@@ -98,15 +98,15 @@ var oddEvenList = function (head) {
even = head.next,
evenHead = even;
while (odd.next && even.next) {
- //将偶数位合在一起,奇数位合在一起
- odd.next = even.next;
- odd = odd.next;
- even.next = odd.next;
- even = even.next;
- }
- //链接
- odd.next = evenHead;
- return head;
+ //将偶数位合在一起,奇数位合在一起
+ odd.next = even.next;
+ odd = odd.next;
+ even.next = odd.next;
+ even = even.next;
+ }
+ //链接
+ odd.next = evenHead;
+ return head;
};
```
diff --git a/animation-simulation/链表篇/leetcode82删除排序链表中的重复元素II.md b/animation-simulation/链表篇/leetcode82删除排序链表中的重复元素II.md
index 0e42f1c..56d8354 100644
--- a/animation-simulation/链表篇/leetcode82删除排序链表中的重复元素II.md
+++ b/animation-simulation/链表篇/leetcode82删除排序链表中的重复元素II.md
@@ -195,7 +195,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -222,4 +221,3 @@ func deleteDuplicates(head *ListNode) *ListNode {
return root.Next
}
```
-
diff --git a/animation-simulation/链表篇/leetcode86分隔链表.md b/animation-simulation/链表篇/leetcode86分隔链表.md
index fdcac26..e90893a 100644
--- a/animation-simulation/链表篇/leetcode86分隔链表.md
+++ b/animation-simulation/链表篇/leetcode86分隔链表.md
@@ -188,7 +188,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -214,4 +213,3 @@ func partition(head *ListNode, x int) *ListNode {
return headSmall.Next
}
```
-
diff --git a/animation-simulation/链表篇/leetcode92反转链表2.md b/animation-simulation/链表篇/leetcode92反转链表2.md
index 2a6caff..22eb6dd 100644
--- a/animation-simulation/链表篇/leetcode92反转链表2.md
+++ b/animation-simulation/链表篇/leetcode92反转链表2.md
@@ -264,7 +264,6 @@ class Solution {
}
```
-
GoCode:
```go
@@ -307,4 +306,3 @@ func reverse(head *ListNode) *ListNode {
return pre
}
```
-
diff --git a/animation-simulation/链表篇/剑指Offer25合并两个排序的链表.md b/animation-simulation/链表篇/剑指Offer25合并两个排序的链表.md
index 5f51f72..007270e 100644
--- a/animation-simulation/链表篇/剑指Offer25合并两个排序的链表.md
+++ b/animation-simulation/链表篇/剑指Offer25合并两个排序的链表.md
@@ -147,7 +147,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -173,4 +172,3 @@ func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
return root.Next
}
```
-
diff --git a/animation-simulation/链表篇/剑指offer22倒数第k个节点.md b/animation-simulation/链表篇/剑指offer22倒数第k个节点.md
index 38e624e..037cd0e 100644
--- a/animation-simulation/链表篇/剑指offer22倒数第k个节点.md
+++ b/animation-simulation/链表篇/剑指offer22倒数第k个节点.md
@@ -164,7 +164,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -182,4 +181,3 @@ func getKthFromEnd(head *ListNode, k int) *ListNode {
return after
}
```
-
diff --git a/animation-simulation/链表篇/面试题 02.03. 链表中间节点.md b/animation-simulation/链表篇/面试题 02.03. 链表中间节点.md
index c520fec..72693e7 100644
--- a/animation-simulation/链表篇/面试题 02.03. 链表中间节点.md
+++ b/animation-simulation/链表篇/面试题 02.03. 链表中间节点.md
@@ -136,7 +136,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -150,4 +149,3 @@ func middleNode(head *ListNode) *ListNode {
return slow
}
```
-
diff --git a/animation-simulation/链表篇/面试题 02.05. 链表求和.md b/animation-simulation/链表篇/面试题 02.05. 链表求和.md
index dc54242..fcdb8c5 100644
--- a/animation-simulation/链表篇/面试题 02.05. 链表求和.md
+++ b/animation-simulation/链表篇/面试题 02.05. 链表求和.md
@@ -268,7 +268,6 @@ class Solution {
}
```
-
Go Code:
```go
@@ -305,4 +304,3 @@ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
return root.Next
}
```
-