mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
添加(0234.回文链表.md):增加typescript版本
This commit is contained in:
@ -273,7 +273,7 @@ class Solution:
|
||||
return pre
|
||||
```
|
||||
|
||||
## 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