我正在尝试实现一个将单链表的所有节点相互比较的函数。
例如,假设我有一个包含8个节点的链表。 (但我没有计算告诉我的事情)
我需要将1与2,3,4,5,6,7和8进行比较。然后我需要将2与3,4,5,6,7和8进行比较。显然,我可以' t比较1与1,8与8比较,2与1比较1和2比较。
我知道这是一个双循环,但我很难构建这个。
任何人都可以提供任何见解或伪代码吗?
我认为它是这样的:
//I know already that the list is NOT empty. But I don't know if it contains only one node.
Node * current = list;
Node * compWith;
if (current->next != NULL)
{
for (current = list; current->next != NULL; current = current->next)
for (compWith = current->next; compWith->next != NULL; compWith = compWith->next)
//Compare here
}
但是我并不完全确定我的循环在正确的时间停止,我想我在某处进行双重比较。任何见解或伪代码?