mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
添加 0024.两两交换链表中的节点.md Scala版本
This commit is contained in:
@ -311,7 +311,29 @@ func swapPairs(_ head: ListNode?) -> ListNode? {
|
|||||||
return dummyHead.next
|
return dummyHead.next
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Scala:
|
||||||
|
```scala
|
||||||
|
// 虚拟头节点
|
||||||
|
object Solution {
|
||||||
|
def swapPairs(head: ListNode): ListNode = {
|
||||||
|
var dummy = new ListNode(0, head) // 虚拟头节点
|
||||||
|
var pre = dummy
|
||||||
|
var cur = head
|
||||||
|
// 当pre的下一个和下下个都不为空,才进行两两转换
|
||||||
|
while (pre.next != null && pre.next.next != null) {
|
||||||
|
var tmp: ListNode = cur.next.next // 缓存下一次要进行转换的第一个节点
|
||||||
|
pre.next = cur.next // 步骤一
|
||||||
|
cur.next.next = cur // 步骤二
|
||||||
|
cur.next = tmp // 步骤三
|
||||||
|
// 下面是准备下一轮的交换
|
||||||
|
pre = cur
|
||||||
|
cur = tmp
|
||||||
|
}
|
||||||
|
// 最终返回dummy虚拟头节点的下一个,return可以省略
|
||||||
|
dummy.next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user