[데이터 구조 - 4] 링크 에서 주어진 값 val 과 같은 모든 노드 를 삭제 합 니 다.

3991 단어 데이터 구조
제목 설명:
링크 에서 주어진 값 val 과 같은 모든 노드 를 삭제 합 니 다.
예시:
입력: 1 - > 2 - > 6 - > 3 - > 4 - > 5 - > 6, val = 6 출력: 1 - > 2 - > 3 - > 4 - > 5
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

사고 분석:
1. 결과 링크 를 만 들 고 마지막 결과 로 2. 원래 의 링크 를 되 돌려 줍 니 다. 현재 노드 에 저 장 된 값 과 삭제 할 값 이 같 지 않 으 면 이 노드 를 결과 링크 에 저장 합 니 다. 3. 결과 링크 의 마지막 노드 인 next 는 NULL 을 가리 키 려 고 합 니 다.
코드 구현:
struct ListNode* removeElements(struct ListNode* head, int val)
{
	 struct ListNode* pCur = head;
	 struct ListNode* result = NULL;//          
	 struct ListNode* last = NULL;//           
	 while (pCur != NULL)
	 {
		  if (pCur->val != val)
		  {
			   if (last==NULL)
			   {
				    result = last=pCur;
			   }
			   else
			   {
				   last->next=pCur;
				   last = pCur;
			   }
		  }
		  pCur = pCur->next;
	 }
	 if (last != NULL)
	 {
		  last->next = NULL;
	 }
	 return result;
}

좋은 웹페이지 즐겨찾기