本文共 750 字,大约阅读时间需要 2 分钟。
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换输入
示例一:
head = [1,2,3,4] 输出:[2,1,4,3]/** * 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) { //1.递归结束条件 if(head==nullptr|| head->next==nullptr){ return head; } //2. 等价关系式 ListNode* temp=swapPairs(head->next->next); ListNode* new_head; new_head=head->next; new_head->next=head; head->next=temp; return new_head; }};
转载地址:http://xbfdi.baihongyu.com/