两两交换链表中的节点

问题描述

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs

思路

递归的思想

题解

class Solution {
public:
    ListNode *swapPairs(ListNode *head) {
        if(head== nullptr||head->next== nullptr) return  head;
        ListNode *p=head;
        ListNode *q=head->next;
        p->next=swapPairs(q->next); 
        q->next=p;
        return q;
    }
};

标签: none

添加新评论