方法一:创建两个不带头结点的单链表,将小于x的数尾插到一个lesshead链表中,将大于等于x的数尾插到greaterhead的链表中去,最后再将greaterhead的头部接到lesshead的尾部结点即可。
代码:
但是这题有个大坑,就是成环问题:如图所示
解决方法:将greaterhead的尾结点的next指针置为空指针,就可以解决。
方法二:创建两个带头结点的单链表,其原理和方法一基本相同。好处就是结构更加清晰,在代码的最后不用再判断其中一个链表是否为空。
这里最后需要将lesshead和greaterhead的空间进行释放,因为这两个头结点已经不需要使用了。