File tree Expand file tree Collapse file tree 1 file changed +80
-1
lines changed Expand file tree Collapse file tree 1 file changed +80
-1
lines changed Original file line number Diff line number Diff line change 35
35
36
36
** 题目代码**
37
37
38
+ Java Code:
39
+
38
40
``` java
39
41
class Solution {
40
42
public boolean isPalindrome (ListNode head ) {
@@ -46,7 +48,7 @@ class Solution {
46
48
arr. add(copynode. val);
47
49
copynode = copynode. next;
48
50
}
49
- // 双指针遍历数组
51
+ // 双指针遍历数组
50
52
int back = 0 ;
51
53
int pro = arr. size() - 1 ;
52
54
while (back < pro) {
@@ -64,6 +66,83 @@ class Solution {
64
66
65
67
```
66
68
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
+
67
146
这个方法可以直接通过,但是这个方法需要辅助数组,那我们还有其他更好的方法吗?
68
147
69
148
双指针翻转链表法
You can’t perform that action at this time.
0 commit comments