https://leetcode.com/problems/partition-list/description
Q. 리스트가 주어질 때, x 보다 작은 값, 큰 값으로 노드를 구분하고 연결하라.
Solution.
해당 값을 기준으로 node를 재연결 하고,
해당 두 connection head를 연결해 준다.
코드.
더보기
public ListNode Partition(ListNode head, int x)
{
ListNode node = head;
ListNode part1 = null, part2 = null;
ListNode n1 = null, n2 = null;
while(node != null)
{
if(node.val < x)
{
if(part1 == null) part1 = node;
if(n1 != null) n1.next = node;
n1 = node;
}
else
{
if(part2 == null) part2 = node;
if(n2 != null) n2.next = node;
n2 = node;
}
node = node.next;
}
// front part 의 tail과 second part의 head를 연결.
if(n1 != null)
n1.next = part2;
// second part의 tail을 정리.
if(n2 != null)
n2.next = null;
return part1!=null ? part1 : part2;
}
결과.
'Leetcode > Top 100 Liked' 카테고리의 다른 글
[Misc][Medium] 189. Rotate Array (0) | 2024.04.28 |
---|---|
[Misc][Easy] 136. Single Number (0) | 2024.04.27 |
[Misc][Medium] 75. Sort Colors (0) | 2024.04.27 |
[Misc][Medium] 56. Merger Intervals. (0) | 2024.04.27 |
[Stack][Easy] 20. Valid Parentheses (0) | 2024.04.21 |