237. Delete Node in a Linked List
做题历程:
- 本题做了不止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;
}
}
}
};