c++判断单链表是否有序
时间: 2024-10-28 10:15:25 浏览: 19
数据结构与算法实验(C++):单链表实验-代码
在C++中,判断单链表是否有序通常分为两种情况:升序或降序。
1. 升序排序:如果链表中的节点值是从小到大排列的,我们可以通过遍历链表并比较相邻节点的值来检查。如果每次比较都小于等于下一个节点,那么链表就是升序的。例如:
```cpp
bool isSortedAscending(Node* head) {
if (!head || !head->next) return true; // 空列表或只有一个元素都是有序的
Node* current = head;
while (current && current->next) {
if (current->value > current->next->value) {
return false;
}
current = current->next;
}
return true;
}
```
2. 降序排序:反之,如果节点值是从大到小排列,检查条件就会变成大于等于。
如果你想要同时处理升序和降序,可以先确定一个初始方向,然后比较当前节点和下一个节点的大小关系,改变判断条件。
阅读全文