Skip to content

Commit b48730d

Browse files
committed
添加cpp,py和js (上半部分)
1 parent ef1da6b commit b48730d

File tree

1 file changed

+80
-1
lines changed

1 file changed

+80
-1
lines changed

animation-simulation/链表篇/234. 回文链表.md

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535

3636
**题目代码**
3737

38+
Java Code:
39+
3840
```java
3941
class Solution {
4042
public boolean isPalindrome(ListNode head) {
@@ -46,7 +48,7 @@ class Solution {
4648
arr.add(copynode.val);
4749
copynode = copynode.next;
4850
}
49-
// 双指针遍历数组
51+
//双指针遍历数组
5052
int back = 0;
5153
int pro = arr.size() - 1;
5254
while (back < pro) {
@@ -64,6 +66,83 @@ class Solution {
6466

6567
```
6668

69+
C++ Code:
70+
71+
```cpp
72+
class Solution {
73+
public:
74+
bool isPalindrome(ListNode* head) {
75+
vector<int> arr;
76+
ListNode* copynode = head;
77+
while (copynode) {
78+
arr.push_back(copynode->val);
79+
copynode = copynode->next;
80+
}
81+
int back = 0;
82+
int pro = arr.size() - 1;
83+
while (back < pro) {
84+
if (arr[back] != arr[pro]) {
85+
return false;
86+
}
87+
back++;
88+
pro--;
89+
}
90+
return true;
91+
}
92+
};
93+
```
94+
95+
JS Code:
96+
97+
```js
98+
var isPalindrome = function(head) {
99+
let arr = [];
100+
let copynode = head;
101+
//将链表的值复制到数组中
102+
while (copynode) {
103+
arr.push(copynode.val)
104+
copynode = copynode.next
105+
}
106+
//双指针遍历数组
107+
let back = 0;
108+
let pro = arr.length - 1;
109+
while (back < pro) {
110+
//判断两个指针的值是否相等
111+
if (arr[back] !== arr[pro]) {
112+
return false
113+
}
114+
//移动指针
115+
back += 1
116+
pro -= 1
117+
}
118+
return true
119+
};
120+
```
121+
122+
Python Code:
123+
124+
```py
125+
class Solution:
126+
def isPalindrome(self, head: ListNode) -> bool:
127+
arr = []
128+
copynode = head
129+
# 将链表的值复制到数组中
130+
while copynode is not None:
131+
arr.append(copynode.val)
132+
copynode = copynode.next
133+
# 双指针遍历数组
134+
back = 0
135+
pro = len(arr) - 1
136+
while back < pro:
137+
# 判断两个指针的值是否相等
138+
if arr[back] != arr[pro]:
139+
return False
140+
# 移动指针
141+
back += 1
142+
pro -= 1
143+
return True
144+
```
145+
67146
这个方法可以直接通过,但是这个方法需要辅助数组,那我们还有其他更好的方法吗?
68147

69148
双指针翻转链表法

0 commit comments

Comments
 (0)