Problem
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
Example:
Input: head = 1->4->3->2->5->2, x = 3
Output: 1->2->2->4->3->5
class Solution { public ListNode partition(ListNode head, int x) { ListNode dummy1 = new ListNode(0); ListNode dummy2 = new ListNode(0); ListNode small = dummy1, large = dummy2; while (head != null) { if (head.val < x) { small.next = head; small = small.next; } else { large.next = head; large = large.next; } head = head.next; } small.next = dummy2.next; large.next = null; return dummy1.next; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72529.html
摘要:當前節點的前一個節點插入位置的前一個節點,以及記錄初始位置的節點。當發現一個需要交換的節點時,先獲得這個節點,然后將指向節點的后一個節點。最后將兩個鏈表連接。代碼相比于第一種更加清晰一些。 題目要求 Given a linked list and a value x, partition it such that all nodes less than x come before no...
Problem A string S of lowercase letters is given. We want to partition this string into as many parts as possible so that each letter appears in at most one part, and return a list of integers represe...
摘要:新建兩個鏈表,分別存和的結點。令頭結點分別叫作和,對應的指針分別叫作和。然后遍歷,當小于的時候放入,否則放入。最后,讓較小值鏈表尾結點指向較大值鏈表頭結點,再讓較大值鏈表尾結點指向。 Problem Given a linked list and a value x, partition it such that all nodes less than x come before no...
摘要:深度優先搜素復雜度時間空間思路因為我們要返回所有可能的分割組合,我們必須要檢查所有的可能性,一般來說這就要使用,由于要返回路徑,仍然是典型的做法遞歸時加入一個臨時列表,先加入元素,搜索完再去掉該元素。 Palindrome Partitioning Given a string s, partition s such that every substring of the parti...
閱讀 3472·2023-04-25 18:52
閱讀 2484·2021-11-22 15:31
閱讀 1224·2021-10-22 09:54
閱讀 3010·2021-09-29 09:42
閱讀 605·2021-09-26 09:55
閱讀 909·2021-09-13 10:28
閱讀 1100·2019-08-30 15:56
閱讀 2107·2019-08-30 15:55