24-m-Swap Nodes in Pairs

来源:互联网 发布:java中布尔函数编程 编辑:程序博客网 时间:2024/06/05 00:29

交换相邻节点。逻辑简单,就看指针操作了。另外,对于链表来说,加个头结点真的省事很多,以及对终点的判断也很重要。

如下:

struct ListNode* swapPairs(struct ListNode* head) {    if (head == NULL) return NULL;//    struct ListNode **slow = &head, **fast = &((*slow)->next);    struct ListNode p = {-1, head};    struct ListNode *slow = &p, *fast = slow->next;    if (fast->next == NULL) return head;        struct ListNode *tempP = NULL;    while (fast != NULL) {//        tempP = fast->next;        if (fast->next == NULL) break;        slow->next = fast->next;        fast->next = fast->next->next;        slow->next->next = fast;                slow = fast;        fast = slow->next;    }    return p.next;}


0 0
原创粉丝点击