自学内容网 自学内容网

两两交换链表中的节点

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

思路

这道题目正常模拟就行了。//我还不熟练如何模拟,我在这方面还是差了点,毕竟还算是新手。所有链表都建议使用虚拟头结点。

ListNode *swap(ListNode *head)
{
    ListNode *dummyhead = new ListNode(0);
    dummyhead->next=head;
    ListNode *cur=dummyHead;
    while(cur->next!=nullptr &&cur->next->next!=nullptr)
    {
        List *tmp1 = cur->next;
        List *tmp2 = cur->next->next->next;
        
        cur->next = cur->next->next;
        cur->next->next=tmp1;
        cur->next->next=tmp2;
    }
    List *result = dummyHead->next;
    delete dummyHead;
    return result;
}

成果

写完这一题,我对模拟的概念又上一层楼了,这个其实本质就是数学。


原文地址:https://blog.csdn.net/weixin_48937413/article/details/145285799

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!