题目理解: 链表分隔
前半段为小于基值,后半段为大于等于基值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; } }