从链接列表中删除节点,给定索引位置,但从末尾开始

2024-05-19 10:09:55 发布

您现在位置:Python中文网/ 问答频道 /正文

在我从面试问题中学习算法的过程中,我确实觉得这很有趣。在

基本上,问题是要求删除索引处的节点,但从链接列表的末尾开始。在一个循环中。在

我想你需要两个循环,一个知道列表的长度,另一个从末尾开始删除节点,但是我认为链表无论如何都是顺序的,所以一个循环应该可以工作。在

你将如何以最简单的方式处理这个问题?我试着用python;你可以创建一个简单的列表,用4行代码来完成操作;但是如果你在面试,他们通常希望你不用语言快捷键就“全部手工”完成。在


Tags: 代码算法语言列表节点顺序链接过程
1条回答
网友
1楼 · 发布于 2024-05-19 10:09:55
struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
    struct ListNode *temp = head;
    int length = 0;
while(temp->next!=NULL){
    temp = temp->next;
    length++;
}
temp = head;
while(length!= n+1){
    temp = temp->next;
    length ;
}
temp->next = temp->next->next;
return head;

}

编辑: 最初,我使用第一个while循环计算链表的长度,然后使用第二个while循环递减该长度,直到到达前面提到的节点,然后简单地删除该节点并返回头部

相关问题 更多 >

    热门问题