如何使用破坏第 n 个元素的链表创建程序?
Posted
技术标签:
【中文标题】如何使用破坏第 n 个元素的链表创建程序?【英文标题】:How to create a program with linked list that destroys the nth element? 【发布时间】:2019-04-01 14:00:43 【问题描述】:我正在创建一个带有链表的程序,该程序具有破坏列表的 nth 元素并将其编号存储在第 n 个元素中的元素的功能。
我创建了一个创建链接列表的程序,但我找不到搜索nth元素的方法。
struct elem
int value;
elem* next;
;
int main()
elem* start = NULL, *last;
int a[4] = 1, 2, 3, 4;
/// creating
for(int i = 0; i < 4; i++)
elem* p = new elem; /// s1
p->value = a[i]; /// s2
p->next = NULL; /// s3
if(start == NULL) start = p; /// s4a
else last->next = p; /// s4b
last = p; /// s5
/// printing
elem* p = start;
while (p)
cout << p->value << " ";
p=p->next;
/// deleting
p = start; /// 1
while (p)
start = p->next; /// 2
delete p; /// 3
p = start; /// 4
我可以在这里得到一些帮助吗?链表真的很苦恼,提前谢谢!
【问题讨论】:
【参考方案1】:首先,您需要通过 args[] 将“n”的值传递给 main() 函数
然后,添加一个while循环,就像打印一样,每次遍历链表元素时递增索引,并检查索引是否== n,获取元素值,然后通过调用删除函数删除该元素。
最好将打印/删除部分作为单独的函数,然后通过 main() 调用这些函数。您可以为从 args[]
获得的参数添加一些检查条件【讨论】:
以上是关于如何使用破坏第 n 个元素的链表创建程序?的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):链表类:第92题:反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。