2024-05-19 10:09:55 发布
网友
在我从面试问题中学习算法的过程中,我确实觉得这很有趣。在
基本上,问题是要求删除索引处的节点,但从链接列表的末尾开始。在一个循环中。在
我想你需要两个循环,一个知道列表的长度,另一个从末尾开始删除节点,但是我认为链表无论如何都是顺序的,所以一个循环应该可以工作。在
你将如何以最简单的方式处理这个问题?我试着用python;你可以创建一个简单的列表,用4行代码来完成操作;但是如果你在面试,他们通常希望你不用语言快捷键就“全部手工”完成。在
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循环递减该长度,直到到达前面提到的节点,然后简单地删除该节点并返回头部
}
编辑: 最初,我使用第一个while循环计算链表的长度,然后使用第二个while循环递减该长度,直到到达前面提到的节点,然后简单地删除该节点并返回头部
相关问题 更多 >
编程相关推荐