LeetCode 24. 两两交换链表中的节点

发布时间 2023-03-26 01:55:06作者: 章章_思游容

24. 两两交换链表中的节点 力扣题目跳转链接



具体解题思路和答案可以参考:代码随想录: 24. 两两交换链表中的节点

自我错误思考过程记录:

&#10008 错误代码:

 //思路:  
class Solution {
public:
    ListNode* swapPairs(ListNode* head)
     {
         ListNode* dummyHead=ListNode(0);
         dummyHead->next=head;

         while(dummyHead->next->next!=nullptr&&dummyHead->next!=nullptr)
         {
             ListNode* temp1=dummyHead->next;
             ListNode* temp3=dummyHead->next->next->next;

              dummyHead->next=dummyHead->next->next;  //头结点指向第二个
         dummyHead->next->next=temp1;    //第二个指向第一个
         temp1->next=temp3;   //第一个指向第三个

         dummyHead=temp1->next;
         }

        return  
    }
};

&#10008 错误分析:题目要求: 并返回交换后链表的头节点。 直接移动dummyHead的话 ,没有办法获取头结点了。
 还有就是 new ListNode(0); 这样初始化一个节点。


正确的写法应该用一个cur=dummyHead,保留dummyHead :