手机网站html模板下载,项城网站设计,制作企业宣传片拍摄公司,如何在阿里巴巴建设网站题目描述
给你一个链表#xff0c;两两交换其中相邻的节点#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题#xff08;即#xff0c;只能进行节点交换#xff09;。 出处
思路
前两个结点先偷一手用交换val做#xff0c;从链表第1…题目描述
给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。 出处
思路
前两个结点先偷一手用交换val做从链表第1项(0开始计数)开始递归调用来交换结点。
代码
class Solution {
public:ListNode* my_swap(ListNode *h){//交换h后的两个结点并返回下一结点的指针if(!h-next||!h-next-next)return nullptr;ListNode* ph-next;ListNode* qh-next-next;p-nextq-next;h-nextq;q-nextp;return p;}ListNode* swapPairs(ListNode* head) {//先处理前两个if(!head||!head-next)return head;int thead-next-val;head-next-valhead-val;head-valt;ListNode* phead-next;while(p) pmy_swap(p);return head;}
};