Skip to content

Commit 4cb5d68

Browse files
committed
Update 24.swapNodesInPairs.md
1 parent 61d19d1 commit 4cb5d68

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

problems/24.swapNodesInPairs.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ https://leetcode-cn.com/problems/swap-nodes-in-pairs/
7070

7171
## 代码
7272

73-
* 语言支持:JS,Python3
73+
* 语言支持:JS,Python3, Go, PHP
7474

7575
```js
7676
/**
@@ -127,6 +127,62 @@ class Solution:
127127
return _next
128128
```
129129

130+
Go Code:
131+
132+
```go
133+
/**
134+
* Definition for singly-linked list.
135+
* type ListNode struct {
136+
* Val int
137+
* Next *ListNode
138+
* }
139+
*/
140+
func swapPairs(head *ListNode) *ListNode {
141+
if head == nil || head.Next == nil {
142+
return head
143+
}
144+
145+
next := head.Next
146+
head.Next = swapPairs(next.Next) // 剩下的节点递归已经处理好, 拼接到前 2 个节点上
147+
next.Next = head
148+
return next
149+
}
150+
```
151+
152+
PHP Code:
153+
154+
```php
155+
/**
156+
* Definition for a singly-linked list.
157+
* class ListNode {
158+
* public $val = 0;
159+
* public $next = null;
160+
* function __construct($val = 0, $next = null) {
161+
* $this->val = $val;
162+
* $this->next = $next;
163+
* }
164+
* }
165+
*/
166+
class Solution
167+
{
168+
169+
/**
170+
* @param ListNode $head
171+
* @return ListNode
172+
*/
173+
function swapPairs($head)
174+
{
175+
if (!$head || !$head->next) return $head;
176+
177+
/** @var ListNode $next */
178+
$next = $head->next;
179+
$head->next = (new Solution())->swapPairs($next->next); // 递归已经将后面链表处理好, 拼接到前面的元素上
180+
$next->next = $head;
181+
return $next;
182+
}
183+
}
184+
```
185+
130186
**复杂度分析**
131187
- 时间复杂度:$O(N)$
132188
- 空间复杂度:$O(1)$

0 commit comments

Comments
 (0)