今天继续刷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