Leetcode/Top 100 Liked

[LinkedList][Medium] 86. Partition List

자전거통학 2024. 5. 27. 23:25

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