[LintCode] 링크 의 요 소 를 삭제 합 니 다.
문제.
LintCode: 링크 의 요 소 를 삭제 합 니 다.
묘사 하 다.
링크 에서 주어진 값
val
과 같은 모든 노드 를 삭제 합 니 다.본보기
링크
1->2->3->3->4->5->3
와 val = 3
을 드 립 니 다. 삭제 3
후의 링크 를 되 돌려 야 합 니 다. 1->2->4->5
링크 의 데이터 구조struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
실현 - C + +
class Solution {
public:
ListNode *removeElements(ListNode *head, int val) {
// 21ms
ListNode *prev = NULL;
ListNode *p = head;
ListNode *buffer;
while (p != NULL) {
if (p->val == val) {
if (prev != NULL)
prev->next = p->next;
else
head = p->next;
buffer = p;
p = p->next;
delete buffer;
} else {
prev = p;
p = p->next;
}
}
return head;
}
};
총결산
간단 한 문 제 는 너무 많은 분석 이 필요 없 이 몇 가지 세부 사항 을 주의 하면 된다.
delete
으로 메모 리 를 방출 해 야 한다.next
를 NULL
로 설정 해 야 한다.꼬리 노드 delete
만 병 치 NULL
하면 앞의 노드 next
는 하나
가 된다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.