问题:创建n个节点的循环链表并倒序显示。

2025年1月8日 | 7 分钟阅读

说明

在此程序中,我们创建一个循环链表,然后以反向顺序遍历列表并打印节点。

算法

  1. 定义一个 Node 类,它表示列表中的一个节点。它有两个属性 data 和 next,next 将指向下一个节点。
  2. 定义另一个类来创建循环链表,它有两个节点:head和tail。它有两个方法:add()、display()和reverse()。
  3. add() 将向列表中添加一个节点
    1. 它首先检查头节点是否为 null,然后将节点作为头节点插入。
    2. head 和 tail 都将指向新添加的节点。
    3. 如果head不为null,新节点将成为新的tail,并且新tail将指向head,因为这是一个循环链表。
  4. display() 将显示列表中存在的所有节点。
    1. 定义一个新节点“current”,它将指向头节点。
    2. 打印 current.data 直到 current 再次指向 head。
    3. 在每次迭代中,current 将指向列表中的下一个节点。
  5. reverse() 将以反向顺序打印循环链表。
    1. 此方法检查当前节点的下一个节点是否为head,这意味着当前节点指向tail,然后它将打印tail节点的数据。
    2. 通过考虑当前节点的下一个节点递归调用 reverse(),并从尾部开始以反向顺序打印所有节点。

解决方案

Python

输出

Original List: 
1 2 3 4 5 6
Reversed List: 
6 5 4 3 2 1

C

输出

Original List: 
1 2 3 4 5 6
Reversed List: 
6 5 4 3 2 1

JAVA

输出

Original List: 
1 2 3 4 5 6
Reversed List: 
6 5 4 3 2 1

C#

输出

Original List: 
1 2 3 4 5 6
Reversed List: 
6 5 4 3 2 1

PHP

输出

Original List: 
1 2 3 4 5 6
Reversed List: 
6 5 4 3 2 1
 
下一主题#