Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Given linked list -- head = [4,5,1,9], which looks like following:
Example 1:
Input: head = [4,5,1,9], node = 5 Output: [4,1,9] Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.
Example 2:
Input: head = [4,5,1,9], node = 1 Output: [4,5,9] Explanation: You are given the third node with value 1, the linked list should become 4 -> 5 -> 9 after calling your function.
题目大意:
给定链表中要被删除的节点,将它从链表中删除。
理 解:
没有给定链表。参考他人的方法,将该节点后面的一个节点元素值赋值给该节点,再删除该节点。
代 码 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) { node->val = node->next->val; node->next = node->next->next; } };
运行结果:
执行用时 :24 ms, 在所有C++提交中击败了57.73%的用户
内存消耗 :9.3 MB, 在所有C++提交中击败了5.97%的用户