合并两个有序链表-排序

- (SSNode *)mergerLink:(SSNode *)nodeHeadOne nodeHeadTwo:(SSNode *)nodeHeadTwo {

    SSNode *cur = nil;

    SSNode *newHead = nil;

 

    //赋值newhead

    if(nodeHeadOne.value < nodeHeadTwo.value) {

        cur = newHead = nodeHeadOne;

        nodeHeadOne = nodeHeadOne.next;

    }else {

        cur = newHead = nodeHeadTwo;

        nodeHeadTwo = nodeHeadTwo.next;

    }

 

    //比较取小的node放入新链表

    while (nodeHeadOne!= nil && nodeHeadTwo != nil) {

        if (nodeHeadOne.value < nodeHeadTwo.value) {

            cur.next = nodeHeadOne;

            cur = cur.next;

            nodeHeadOne = nodeHeadOne.next;

        }else {

            cur.next = nodeHeadTwo;

            cur = cur.next;

            nodeHeadTwo = nodeHeadTwo.next;

        }

    }

    

    //处理余下的链表

    if (nodeHeadOne!= nil) {

        cur.next = nodeHeadOne;

    }

    if (nodeHeadTwo!= nil) {

        cur.next = nodeHeadTwo;

    }

    

    return newHead;

}

posted @ 2021-06-24 10:00  syh-918  阅读(63)  评论(0)    收藏  举报