LeetCode 面试题 02.03. 删除中间节点 题解 C/C++

既然前面的结点不能访问,就直接将需要删除的结点的下一个结点复制过来,然后把下一个结点删了

struct ListNode{
     
	int val;
	ListNode *next;
	ListNode(int x):val(x),next(nullptr){
     }
}

class Solution {
     
public:
	void deleteNode(ListNode *node) {
     
		if(node==nullptr||node->next==nullptr)return ;
		//把当前结点的下一个结点复制给当前结点就行了 再把node的下一个结点删了
		ListNode *cur = node;
		cur->val = cur->next->val;
		cur->next = cur->next->next;

	}

}


你可能感兴趣的:(LeetCode,链表,单链表,LeetCode)