我想将输入(类似列表表示的方案)转换为多级链表?任何人都可以帮助我使用 C++ 代码吗?

I would like to convert the input (scheme like representation of lists) into multilevel linked lists? Can anyone help me with the C++ code for this?

输入: ( 10 ( 4 20 ( 2 ) 13 ( 16 ( 3 ) ) ) 5 12 7 ( 17 ( 9 ( 19 15 ) 8 ) 6 ) 11 )

输出:

解决方案几乎肯定是递归的。

给定节点定义,您将需要一个有效负载(数字)、一个 next 指针(对于相同 "level" 的项目)和一个 under 指针(对于子列表)。

因此您只需迭代传入的标记。当你找到一个数字时,你将它附加到前一个数字的 next 指针上(对空列表的特殊处理)。

当您找到一个左括号后跟一个数字时,您将其放入 under link 并向下递归一级。

找到右括号后,返回上一级并继续。