题目内容
这题读完题就答案出来了,这面试题太水了吧
实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。
示例:
输入:单向链表a->b->c->d->e->f中的节点c
结果:不返回任何数据,但该链表变为a->b->d->e->f
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-middle-node-lcci
c语言解答
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
//删除该结点,既然删除不了,那就变成他的下一个节点
node->val=node->next->val;
node->next=node->next->next;
}
java解答
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
//删除该结点,既然删除不了,那就变成他的下一个节点
node.val=node.next.val;
node.next=node.next.next;
}
}
总结
当初看题目面试题,顿时就意味要有些意思,看完题目顿时索然无味
轻松解决:链表中删除指定位置节点的误导面试题
本文揭示了一道看似简单实则易误解的链表删除中间节点的面试题,分享了C/C++和Java解决方案,并讨论了题目背后的思考过程。
370





