題目理解: 鏈表分隔
前半段爲小於基值,後半段爲大於等於基值java
作法:新建兩個鏈表
遍歷原鏈表結點,放到對飲個的鏈表中去
合併兩個鏈表,
再將這個鏈表拷貝到原鏈表中,返回ide
import java.util.LinkedList; public class Partition { class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } //新建鏈表L1 L2 掛在一塊兒 放到原鏈表 public ListNode partition(ListNode pHead, int x) { LinkedList <Integer> L1=new LinkedList<>(); LinkedList <Integer> L2=new LinkedList<>(); ListNode cur=pHead;//頭指針 while(cur!=null){ if(cur.val<x){ L1.add(cur.val);//cur一進來就放 } else{ L2.add(cur.val); } cur=cur.next; } L1.addAll(L2); //L1bianle pHead.val=L1.get(0); cur=pHead.next; for(int i=1;i< L1.size();i++){ cur.val= L1.get(i); cur=cur.next; }//把值放進原 鏈表 return pHead; } }