237. Delete Node in a Linked List


做题历程:

  1. 本题做了不止2遍了,独立解出,大概耗时7分钟

本题在Bloomberg校招的时候见过,当时并不是不会做,而是没想到居然还可以修改node的值,而本题的唯一考点也在此,剩下的纯粹就是链表操作的基本功。 代码如下:

/**
 * 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) {
        if (node != nullptr) {
            if (node->next == nullptr) {
                delete node;
            }
            else {
                ListNode* swap_node = node->next;
                node->val = swap_node->val;
                node->next = swap_node->next;
                swap_node->next = nullptr;
                delete swap_node;
            }
        }
    }
};

results matching ""

    No results matching ""