LeetCode探索之旅(69)-237删除节点

今天继续刷LeetCode,第237题,删除链表中的节点。

分析:
删除一个节点,有两种方法;
方法一:将前一个指针指向要删除的节点的下一个节点;
方法二:将下一个节点的值赋值给当前节点,然后删除下一个节点。

问题:
1、auto自动匹配变量类型;

附上C++代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        auto temp=node->next;
        *node=*temp;
        delete temp;
    }
};

附上Python代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    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

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/89136584