【发布时间】:2015-02-20 21:42:33
【问题描述】:
我查看了其他帖子,并没有为我的询问找到一个很好的解决方案。我不想实际对链接列表进行排序,我想查看它是否已排序。我在 C++ 中有一个链表问题。我被要求编写一个给定链表定义的函数,以查看它是否已排序。
实现函数 isSorted - 如果链表中的值按升序排序,则返回 true。 (链表由整数组成)。
给定以下结构:
struct ListNode
{
double value; // The value in this node
struct ListNode *next; // To point to the next node
};
示例数据:从 isSorted 返回
1 -> 3 -> 7 真
4 -> 2 -> 7 错误
() True // 空列表。
3 真
1-> 5 -> 7 -> 2 假
我有这样的东西。
bool NumberList::isSorted() const
{
ListNode *nodePtr; // To move through the list
nodePtr = head;
while (nodePtr)
{
if(nodePtr->value <= nodePtr->value+1)
nodePtr = nodePtr->next;
else
return false;
return true;
}
}
我不确定我这样做是否正确,我需要帮助。 谢谢。
【问题讨论】:
-
您的
return true;应该在循环之外,而不是在循环内。 -
好点,谢谢。
-
@DieterLücking 没有必要粗鲁。我很难理解我发布问题的逻辑。
标签: c++ sorting object struct linked-list