设计一个算法,判断单链表中的结点值是否有序
时间: 2024-10-13 16:15:11 浏览: 31
[详细完整版]数据结构习题.txt
5星 · 资源好评率100%
设计一个算法来判断单链表中的节点值是否有序,可以使用迭代或递归的方式。这里提供一种简单的迭代方法:
1. 定义两个指针,`prev` 和 `current`,初始时都指向头节点。
2. 当 `current` 不为 null 时,进行以下操作:
a. 检查 `current` 的值是否小于等于 `prev` 的值。如果是,则继续遍历;如果不是,说明列表无序,返回 false。
b. 更新 `prev` 为 `current`,然后移动到下一个节点,即 `current = current.next`。
3. 遍历完成后,如果所有节点都满足顺序条件(即每个节点的值都不大于前一个节点),则返回 true。
```python
def is_sorted_linked_list(head):
prev = None
current = head
while current:
if prev and current.val > prev.val:
return False
prev = current
current = current.next
return True
```
阅读全文