给定一个链表,任务是以螺旋方式打印一个单链表。从第一个节点开始,然后是最后一个节点,然后是第二个节点,然后是倒数第二个节点,继续这种模式,直到遍历整个链表。 例如:
输入:
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> X
输出:
1 -> 6 -> 2 -> 5 -> 3 -> 4 -> X
输入:
1 -> 2 -> 3 -> X
输出:
1 -> 3 -> 2 -> X
我尝试制作数组列表并使用两个指针方法来打印此解决方案,但它不起作用。 谁能解释一下更好的方法吗?
假设程序定义了单链表类,您可以创建一个指向列表中每个节点的指针向量,在这种情况下,螺旋模式很简单。我不确定这是否是预期目标。
通过在遍历列表时反转列表,预期目标可能会直接在列表上运行。您将需要两个主要指针,一个向前扫描,一个向后扫描,直到指针相遇,以及遍历和反转列表的一部分所需的指针。完成后,您需要“取消反转”列表的右半部分。