力扣24-两两交换链表中的节点

两两交换链表中的节点

题目链接

解题思路:

  1. 直接交换相邻节点之间的值即可
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if(!head){
            return head;
        }
        ListNode *p = head;
        while(p != nullptr){
            if(p->next == nullptr){
                break;
            }
            else{
                int temp = p->val;
                p->val = p->next->val;
                p->next->val = temp;
                p=p->next->next;
            }
        }
        return head;

    }
};

你可能感兴趣的:(算法-每日一练,leetcode,链表,算法)