题目描述
给定值x将链表分割成两部分,比x小的在链表的前面部分,比x大的在链表的后面部分,不能改变原来的数据结构
思路
- 创建两个新的链表(为了方便插入元素,使其带傀儡节点):smallList,largeList
- 遍历链表,比x小的,插入到smallList链表的末尾,比x大的插入到largeList的末尾
- 最终合并两个链表
public class Solution6 {
public ListNode partition(ListNode pHead, int x) {
if(pHead==null||pHead.next==null){
return pHead;
}
ListNode smallList=new ListNode(0);
ListNode sHead=smallList;
ListNode sTail=smallList;
ListNode largeList=new ListNode(0);
ListNode lHead=largeList;
ListNode lTail=largeList;
for(ListNode cur=pHead;
cur!=null;
cur=cur.next){
if(cur.val
【数据结构|给定值将链表分割成两部分】
推荐阅读
- JAVA|Java中常量池、运行时常量池和字符串常量池的区别
- Java|Java整合腾讯云短信发送
- leetcode刷题-每日更新|Leetcode刷题--链表(C++)
- Python数组Array用法经典指南
- PHP | Ds Vector __construct()函数用法介绍
- 算法设计(从未排序的链表中删除重复项)
- PHP Ds Queue count()函数
- 亚马逊面试体验(针对SDE-1的校园内体验)
- C++中的max_element用法详解