[leetcode题解]237.Delete a node in a linked list-python+c++

leetcode第237题,题目要求写一个函数实现删除链表中的一个节点,该节点以指针给出。一般链表中删除某个节点的时候我们通常是找到要删除节点的前一个节点,然后把当前节点删除掉,但是这里直接给了要删除节点的指针,题目中也说了,该节点不会是尾节点,这样我们就可以把当前节点的内容与当前节点的下一个节点的内容交换,然后删掉下一个节点就可以了。

所以代码比较简单,可以用不同的方法,以下是python和c++代码:

c++代码

方法一:

class Solution {
public:
    void deleteNode(ListNode* node) {
        swap(*node, *(node->next));
    }
};

方法二:

class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val = node->next->val;
        node->next = node->next->next;
    }
};

python代码:

class Solution(object):
    def deleteNode(self, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        node.val = node.next.val
        node.next = node.next.next

本文遵从CC3.0协议转载请注明:转自凌风技术站

本文标题:[leetcode题解]237.Delete a node in a linked list-python+c++

本文链接地址:http://www.iaccepted.net/algorithm/leetcode/53.html

相关文章



发表评论

电子邮件地址不会被公开。 必填项已用*标注