题目地址:
中文:https://leetcode-cn.com/problems/swap-nodes-in-pairs/
英文:https://leetcode.com/problems/swap-nodes-in-pairs/
题目描述:
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list’s nodes. Only nodes itself may be changed.
Example 1:
Input: head = [1,2,3,4]
Output: [2,1,4,3]
Example 2:
Input: head = []
Output: []
Example 3:
Input: head = [1]
Output: [1]
Constraints:
The number of nodes in the list is in the range [0, 100].
0 <= Node.val <= 100
思路:
使用一个整型标记变量,当【标志为偶数】且【当前结点有下一个结点】时交换当前结点和下一个结点的val值。
题解:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode res = new ListNode(0);
res.next = head;
int temp,i=0;
while(head!=null){
if(i%2==0&&head.next!=null){
temp = head.val;
head.val = head.next.val;
head.next.val = temp;
}
i++;
head = head.next;
}
return res.next;
}
}