LintCode 372.Delete Node in a Linked List
阿新 • • 發佈:2018-12-13
思路 這道題讓我們刪除連結串列的一個節點,更通常不同的是,沒有給我們連結串列的起點,只給我們了一個要刪的節點,跟我們以前遇到的情況不太一樣,我們之前要刪除一個節點的方法是要有其前一個節點的位置,然後將其前一個節點的next連向要刪節點的下一個,然後delete掉要刪的節點即可。這道題的處理方法是先把當前節點的值用下一個節點的值覆蓋了,然後我們刪除下一個節點即可
/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/*
* @param node: the node in the list should be deletedt
* @return: nothing
*/
void deleteNode(ListNode * node) {
// write your code here
ListNode *p = node->next;
node->val = p->val;
node->next = p->next;
delete p;
}
};
/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/*
* @param node: the node in the list should be deletedt
* @return: nothing
*/
void deleteNode(ListNode * node) {
// write your code here
node->val = node->next->val;
node->next = node->next->next;
}
};