使用单链表L存储一批整数(值均不为0),请设计算法,将L中的所有的负数放在正数之前
时间: 2023-03-28 21:04:34 浏览: 99
已知线性表按顺序存于内存,每个元素都是整数,试设计把所有值为负数的元素移到全部正数值元素前边的算法 .cpp
可以使用双指针法,一个指针从链表头开始,一个指针从链表尾开始,分别向中间移动,直到两个指针相遇为止。在移动过程中,如果头指针指向的节点的值为负数,则继续向后移动;如果尾指针指向的节点的值为正数,则继续向前移动;如果头指针指向的节点的值为正数,尾指针指向的节点的值为负数,则交换两个节点的值。直到两个指针相遇为止,整个链表中的负数就都在正数之前了。
阅读全文