本文共 857 字,大约阅读时间需要 2 分钟。
题目:
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.
写一个函数,删除一个单链表中的某一个元素,但当这个元素是tail尾节点不要删除,只给出了要删除的那个节点。
思路:
有了要删除的那个节点,那我们就能从这个节点往后next,next地推下去了,我们需要把这个节点删除,又不能改变前一个元素的指针,那么我们可以修改当前的node使得它变成和它的next元素的值和指向都一样,也就相当于删除了原来的元素。class Solution {public: void deleteNode(ListNode* node) { if(node == NULL || node->next == NULL){ ; } node->val = node->next->val; node->next = node->next->next; }};
python:
class Solution(object): def deleteNode(self, node): if node is None or node.next is None: return node.val = node.next.val node.next = node.next.next