mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加(0206.翻转链表.md):增加typescript版本
This commit is contained in:
@ -314,6 +314,54 @@ var reverseList = function(head) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// 双指针法
|
||||||
|
function reverseList(head: ListNode | null): ListNode | null {
|
||||||
|
let preNode: ListNode | null = null,
|
||||||
|
curNode: ListNode | null = head,
|
||||||
|
tempNode: ListNode | null;
|
||||||
|
while (curNode) {
|
||||||
|
tempNode = curNode.next;
|
||||||
|
curNode.next = preNode;
|
||||||
|
preNode = curNode;
|
||||||
|
curNode = tempNode;
|
||||||
|
}
|
||||||
|
return preNode;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 递归(从前往后翻转)
|
||||||
|
function reverseList(head: ListNode | null): ListNode | null {
|
||||||
|
function recur(preNode: ListNode | null, curNode: ListNode | null): ListNode | null {
|
||||||
|
if (curNode === null) return preNode;
|
||||||
|
let tempNode: ListNode | null = curNode.next;
|
||||||
|
curNode.next = preNode;
|
||||||
|
preNode = curNode;
|
||||||
|
curNode = tempNode;
|
||||||
|
return recur(preNode, curNode);
|
||||||
|
}
|
||||||
|
return recur(null, head);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 递归(从后往前翻转)
|
||||||
|
function reverseList(head: ListNode | null): ListNode | null {
|
||||||
|
if (head === null) return null;
|
||||||
|
let newHead: ListNode | null;
|
||||||
|
function recur(node: ListNode | null, preNode: ListNode | null): void {
|
||||||
|
if (node.next === null) {
|
||||||
|
newHead = node;
|
||||||
|
newHead.next = preNode;
|
||||||
|
} else {
|
||||||
|
recur(node.next, node);
|
||||||
|
node.next = preNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
recur(head, null);
|
||||||
|
return newHead;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Ruby:
|
Ruby:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
|
Reference in New Issue
Block a user