美文网首页
328 odd even linked list

328 odd even linked list

作者: larrymusk | 来源:发表于2017-11-20 20:24 被阅读0次

把奇数位的数依次放入一个链表,偶数位的数放入另外一个链表,
然后奇数位链表的末尾指向偶数位的链表,同时把偶数位的链表末尾设置为NULL(容易忘记,切记!!!)

struct ListNode* oddEvenList(struct ListNode* head) {
    struct ListNode *odd = calloc(1, sizeof(struct ListNode));
    struct ListNode *even = calloc(1, sizeof(struct ListNode));

    struct ListNode *lastodd, *lasteven;
    lastodd = odd;
    lasteven = even;
    int oddtag = 1;
    struct ListNode * p = head;
    while(p){
        if(oddtag){
            lastodd->next = p;
            lastodd = lastodd->next;
            oddtag = 0;
        }else{
            lasteven->next = p;
            lasteven = lasteven->next;
            oddtag = 1;
        }

        p = p->next;

    }

    lastodd->next = even->next;
    lasteven->next = NULL;

    free(odd);
    free(even);
    return head;

}

相关文章

网友评论

      本文标题:328 odd even linked list

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