[Leetcode] 21. Merge Two Sorted Lists
Algorithm2021. 7. 24. 20:10
반응형
Identifying the Problem
두 linked list 를 합치고, 오름차순 정렬하기
제한조건
- 한 노드의 길이는 50이고
- 노드안의 개별값은 -100 ~ 100 이다.
- 각 노드는 이미 오름차순 정렬 되어있는 상태이다.
Organizing thoughts
1. 둘 중 하나가 빈 노드라면, 반대 노드를 출력한다.
2. 정답 노드를 생성해 l1 , l2의 값을 비교하며 작은 것부터 채워 넣는다.
Sourcecode
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2)
{
struct ListNode answer;
answer.next = NULL;
struct ListNode * ans = &answer;
if(l1 == 0) //1
return l2;
else if (l2 ==0)
return l1;
while(l1!=0 || l2!=0) //2 둘다 null이면 끝난거임
{
if(l1->val <= l2->val )
{
ans->next = l1;
l1 = l1->next;
}
else
{
ans->next = l2;
l2 = l2->next;
}
ans = ans-> next;
if(l1==0)
{
ans->next = l2;
break;
}
else if(l2==0)
{
ans->next = l1;
break;
}
}
return answer.next;
}
Mistake
없음
New things learned
이해가 안가면 그림을 그려보자
반응형
'Algorithm' 카테고리의 다른 글
[Leetcode] 27. Remove Element (0) | 2021.07.25 |
---|---|
[Leetcode] 26. Remove Duplicates from Sorted Array (0) | 2021.07.25 |
[Leetcode] 14. Longest Common Prefix (0) | 2021.07.24 |
[Leetcode] 13. Roman to Integer (1) | 2021.07.20 |
[Leetcode] 20. Vaild Parentheses (0) | 2021.07.20 |
댓글()