mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加(0234.回文链表.md):增加typescript版本
This commit is contained in:
@ -273,7 +273,7 @@ class Solution:
|
|||||||
return pre
|
return pre
|
||||||
```
|
```
|
||||||
|
|
||||||
## Go
|
### Go
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
|
||||||
@ -319,6 +319,63 @@ var isPalindrome = function(head) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
> 数组模拟
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function isPalindrome(head: ListNode | null): boolean {
|
||||||
|
const helperArr: number[] = [];
|
||||||
|
let curNode: ListNode | null = head;
|
||||||
|
while (curNode !== null) {
|
||||||
|
helperArr.push(curNode.val);
|
||||||
|
curNode = curNode.next;
|
||||||
|
}
|
||||||
|
let left: number = 0,
|
||||||
|
right: number = helperArr.length - 1;
|
||||||
|
while (left < right) {
|
||||||
|
if (helperArr[left++] !== helperArr[right--]) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
> 反转后半部分链表
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function isPalindrome(head: ListNode | null): boolean {
|
||||||
|
if (head === null || head.next === null) return true;
|
||||||
|
let fastNode: ListNode | null = head,
|
||||||
|
slowNode: ListNode = head,
|
||||||
|
preNode: ListNode = head;
|
||||||
|
while (fastNode !== null && fastNode.next !== null) {
|
||||||
|
preNode = slowNode;
|
||||||
|
slowNode = slowNode.next!;
|
||||||
|
fastNode = fastNode.next.next;
|
||||||
|
}
|
||||||
|
preNode.next = null;
|
||||||
|
let cur1: ListNode | null = head;
|
||||||
|
let cur2: ListNode | null = reverseList(slowNode);
|
||||||
|
while (cur1 !== null) {
|
||||||
|
if (cur1.val !== cur2!.val) return false;
|
||||||
|
cur1 = cur1.next;
|
||||||
|
cur2 = cur2!.next;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
function reverseList(head: ListNode | null): ListNode | null {
|
||||||
|
let curNode: ListNode | null = head,
|
||||||
|
preNode: ListNode | null = null;
|
||||||
|
while (curNode !== null) {
|
||||||
|
let tempNode: ListNode | null = curNode.next;
|
||||||
|
curNode.next = preNode;
|
||||||
|
preNode = curNode;
|
||||||
|
curNode = tempNode;
|
||||||
|
}
|
||||||
|
return preNode;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user