Delete Node in a Linked List

来源:互联网 发布:mac百度云盘怎么卸载 编辑:程序博客网 时间:2024/06/17 04:19

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.

直接将后一个数据复制到前面。
方法1: 这个实现方式较为繁琐。

class Solution {public:    void deleteNode(ListNode* node) {        if(node==NULL)            return;        while(node->next!=NULL){            node->val = node ->next ->val;            if(node ->next ->next == NULL){                free(node->next);                node->next = NULL;                break;            }            else                node = node->next;        }        return ;    }};

方法2:简便实现方式,直接复制整体即可。

class Solution {public:    void deleteNode(ListNode* node) {        *node = *node->next;    }};
0 0
原创粉丝点击