当正数首先排序链表

时间:2015-12-02 09:39:16

标签: c linked-list

我尝试在正数第一个和最后的负数时对链表进行排序,但我想保留原始顺序

例如,我插入:3,1,4,6,7,8。

这就是我想要的:4,6,8,3,1,7。

但这就是我得到的:4,6,8,7,1,3

std::string

1 个答案:

答案 0 :(得分:1)

<强>问题

在列表中的最后一个偶数后面插入任何奇数。 这实际上意味着奇数子列表按出现的相反顺序排序。

<强>解决方法

按如下方式调整insert

    while (next && next->number % 2 == 0){
        prev = next;
        next = next->nextPtr;
    }

添加

    if ( num % 2 == 1 ) {
        while (next){
            prev = next;
            next = next->nextPtr;
        }
    }

<强>改进

效率和代码可维护性更好的方法是为子列表或2个链接列表保留两个last指针,而不是首先使用一个。{1}}指针。只要两个子列表至少有一个条目,您就可以通过简单地链接各个部分来创建一个综合列表。

<强>买者

这可能不是OP想要的。她的问题含糊不清,可能使用错误的术语。