leetcode【链表】-----237. Delete Node in a Linked List(删除链表中节点)

1、题目描述

2、分析

        题目要求删除链表中一个节点,在之前学习数据结构的时候,删除链表节点需要知道的是删除的点的前驱节点,但是这道题没有给出表头,所以没有办法找到前驱节点,所以需要做的是将当前节点变成前驱节点,这样在进行删除。也就是删除的是题目中给出的节点的下一个节点,所以就需要把下一个节点的值放入当前节点,这样的效果和删除当前节点是一样的。

3、代码

/**
 * 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) {
        node->val=node->next->val;
        ListNode* temp=node->next;
        node->next=temp->next;
        delete temp;   
        
    }
};

4、相关知识点

        链表的基础知识,学会将问题转化为学过的知识。

 

posted @ 2019-04-07 19:00  吾之求索  阅读(105)  评论(0)    收藏  举报