以反向螺旋方式打印链表

问题描述 投票:0回答:1

给定一个链表,任务是以螺旋方式打印一个单链表。从第一个节点开始,然后是最后一个节点,然后是第二个节点,然后是倒数第二个节点,继续这种模式,直到遍历整个链表。 例如:

输入:

1 -> 2 -> 3 -> 4 -> 5 -> 6 -> X

输出:

1 -> 6 -> 2 -> 5 -> 3 -> 4 -> X

输入:

1 -> 2 -> 3 -> X

输出:

1 -> 3 -> 2 -> X

我尝试制作数组列表并使用两个指针方法来打印此解决方案,但它不起作用。 谁能解释一下更好的方法吗?

c++ arraylist linked-list singly-linked-list spiral
1个回答
0
投票

假设程序定义了单链表类,您可以创建一个指向列表中每个节点的指针向量,在这种情况下,螺旋模式很简单。我不确定这是否是预期目标。

通过在遍历列表时反转列表,预期目标可能会直接在列表上运行。您将需要两个主要指针,一个向前扫描,一个向后扫描,直到指针相遇,以及遍历和反转列表的一部分所需的指针。完成后,您需要“取消反转”列表的右半部分。

© www.soinside.com 2019 - 2024. All rights reserved.