Netplan on Ubuntu 用於網路管理
阿新 • • 發佈:2021-01-03
此部落格連結:https://www.cnblogs.com/ping2yingshi/p/14227560.html
分隔連結串列
題目連結:https://leetcode-cn.com/problems/partition-list/
題目
給你一個連結串列和一個特定值 x ,請你對連結串列進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。
你應當保留兩個分割槽中每個節點的初始相對位置。
示例:
輸入:head = 1->4->3->2->5->2, x = 3
輸出:1->2->2->4->3->5
題解
找連結串列中某些數字比某個數子大或者小的問題,可以使用兩個連結串列來解題,第一個連結串列中存小於給定數的連結串列中的數,第二個連結串列中存大於給定數的連結串列中的數,然後把小連結串列的尾部指向大連結串列的頭部,最後把大連結串列的尾部置空。
程式碼
class Solution { public ListNode partition(ListNode head, int x) { ListNode small=new ListNode(0); ListNode smallp=small; ListNode lager=new ListNode(0); ListNode lagerp=lager; while(head!=null) { if(head.val<x) { smallp.next=head; smallp=smallp.next; } else { lagerp.next=head; lagerp=lagerp.next; } head=head.next; } smallp.next=lager.next; lagerp.next=null; return small.next; } }