链表_LeetCode_237_删除链表节点
原题:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
法一:官方做法
使给定节点node的值等于下一节点node->next的值,再用常规操作将node->next删除。即实际上删除的不是给定节点,而是做了一个代换。
void deleteNode(struct ListNode* node) { node->val=node->next->val; node->next=node->next->next; }
法二:
node和其前一节点的next指向同一地址,即可以等价,故直接对node进行修改即可。
class Solution { public: void deleteNode(ListNode* node) { *node = *(node->next); } }; /*作者:akari-5 链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/chuan-tong-cyu-yan-lian-biao-yu-mian-xiang-dui-xia/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
🛫️起飞

浙公网安备 33010602011771号