美文网首页
链表五:链表的反转

链表五:链表的反转

作者: 程一刀 | 来源:发表于2021-05-28 19:12 被阅读0次

题目地址: 两两交换链表中的节点
题目描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

参考代码:

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode *visualHead = new ListNode();
        visualHead->next=head;
        ListNode *cur = visualHead;
        while (cur->next && cur->next->next){ // 交换cur 后面2个节点
//            第一种
//            ListNode *first = cur->next;
//            ListNode *second = cur->next->next;
//
//            first->next = second->next;
//            second->next = first;
//            cur->next = second;
//            cur = first;
//
//
            
//            第二种
            ListNode *first = cur->next;
            cur->next = cur->next->next;
            first->next = cur->next->next;
            cur->next->next = first;
            cur = cur->next->next;
        }
        return visualHead->next;
    }
};

参考链接: https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0024.%E4%B8%A4%E4%B8%A4%E4%BA%A4%E6%8D%A2%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.md

相关文章

网友评论

      本文标题:链表五:链表的反转

      本文链接:https://www.haomeiwen.com/subject/bltesltx.html