Advertisement
yarin0600

Partition List by pivot

Oct 24th, 2023
661
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. ListNode *partitionList(ListNode *head, ListNode *pivot)
  2. {
  3.    ListNode dummy_head(INT_MAX);
  4.  
  5.    dummy_head.next = head;
  6.    ListNode *traveler = &dummy_head;
  7.    ListNode dummy_head_partitioned_list(INT_MAX);
  8.  
  9.    ListNode *tail_partitioned_list = &dummy_head_partitioned_list;
  10.  
  11.    while (traveler)
  12.    {
  13.       if (traveler->next && traveler->next->val <= pivot->val)
  14.       {
  15.          tail_partitioned_list->next = traveler->next;
  16.          tail_partitioned_list = tail_partitioned_list->next;
  17.          traveler->next = traveler->next->next;
  18.       }
  19.       traveler = traveler->next;
  20.    }
  21.    tail_partitioned_list->next = dummy_head.next;
  22.  
  23.    head = dummy_head_partitioned_list.next;
  24.    return head;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement