核心思路:函数的形参是一个指针,指向的就是要删除的点,即Node。说白了就是将该形参指针的值value和next分别用Node的下一个节点的value和next来代替即可。
附上C,C++,java的实现代码:
(C实现代码)
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
node->val = node->next->val;
node->next = node->next->next;
}
(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) {
if(node->next==NULL)
return;
node->val = node->next->val;
node->next = node->next->next;
}
};
(java实现代码)
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}