输入:head = [1,2,3,4] 输出:[2,1,4,3]
时间: 2023-08-31 18:23:39 浏览: 116
### 回答1:
给定一个链表的头节点,如果链表的长度为偶数,请交换每相邻的两个节点,并返回交换后的链表:
```
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
dummy = ListNode(0)
dummy.next = head
cur = dummy
while cur.next and cur.next.next:
first = cur.next
second = cur.next.next
first.next = second.next
cur.next = second
second.next = first
cur = first
return dummy.next
```
给定输入 `head = [1,2,3,4]`,输出为 `[2,1,4,3]`。
### 回答2:
可以使用Python的切片来实现列表元素的交换。首先创建一个空列表,然后通过切片操作将输入列表head的元素交换顺序后添加到新列表中,即可得到输出列表。
具体步骤如下:
1. 创建一个空列表result = []。
2. 使用切片操作head[::2]获取head的偶数索引元素(即1, 3),并将其添加到result列表中。
3. 使用切片操作head[1::2]获取head的奇数索引元素(即2, 4),并将其添加到result列表中。
4. 最后得到的result列表即为所需的输出列表。
完整的代码如下:
```python
head = [1, 2, 3, 4]
result = head[::2] + head[1::2]
print(result)
```
输出结果为:[1, 3, 2, 4]
### 回答3:
题目要求将输入的列表中的元素两两交换位置,即将相邻的两个元素交换位置,并输出交换后的列表。输入的列表为[1,2,3,4],我们需要将1和2、3和4交换位置。
首先,我们可以创建一个新的空列表result,用于存储交换后的结果。然后,我们可以定义一个循环,遍历输入列表的每个元素。在循环中,我们可以使用判断语句,判断当前元素的下标是否为偶数。若是偶数,则将当前元素与前一个元素交换位置,若不是偶数,则保持不变。最后,将交换后的结果添加到result中。
具体步骤如下:
1. 创建一个空列表result = [],作为存储交换后结果的容器。
2. 定义一个循环,遍历输入列表head的每个元素。每次循环的下标记为i。
3. 在循环中,使用判断语句判断i的奇偶性。
- 若i是偶数,则执行交换操作:将head[i]和head[i-1]交换位置。
- 若i是奇数,则不执行交换操作。
4. 在判断语句结束后,将交换后的结果head添加到result列表中。
5. 循环结束后,返回result作为输出结果。
根据上述步骤,对输入[1,2,3,4]进行操作,可得到输出[2,1,4,3]。
阅读全文