分割链表leetcode86

简介: 分割链表leetcode86

给定一个链表和一个特定值 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*less_pre=new ListNode(8);

           ListNode*more_pre=new ListNode(8);

           ListNode *l=less_pre;

           ListNode*m=more_pre;

           while(head)

           {  

               if(head->val<x)

           {

               less_pre->next=head;

               less_pre=head;

           }

            else

            {  more_pre->next=head;

               more_pre=head;  

            }

               head=head->next;          

           }

           less_pre->next=m->next;

           more_pre->next=NULL;

           return l->next;

         

       }

   };

## 直接利用地址存储方式


   class Solution {

   public:

       ListNode* partition(ListNode* head, int x) {

           ListNode less_head(0);

           ListNode  more_head(0);

           ListNode*less_pre=&less_head;

           ListNode*more_pre=&more_head;

           while(head)

           {  

               if(head->val<x)

           {

               less_pre->next=head;

               less_pre=head;

           }

            else

            {  more_pre->next=head;

               more_pre=head;  

            }

               head=head->next;          

           }

           less_pre->next=more_head.next;

           more_pre->next=NULL;

           return less_head.next;

         

       }

   };

目录
相关文章
|
5月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
1月前
【数据结构】环形、相交、回文、分割、合并、反转链表
【数据结构】环形、相交、回文、分割、合并、反转链表
28 0
|
3月前
|
Python
【Leetcode刷题Python】416. 分割等和子集
LeetCode 416题 "分割等和子集" 的Python解决方案,使用动态规划算法判断是否可以将数组分割成两个元素和相等的子集。
30 1
|
3月前
|
Python
【Leetcode刷题Python】131. 分割回文串
LeetCode题目131的Python编程解决方案,题目要求将给定字符串分割成所有可能的子串,且每个子串都是回文串,并返回所有可能的分割方案。
21 2
|
4月前
【数据结构OJ题】链表分割
牛客题目——链表分割
32 0
【数据结构OJ题】链表分割
|
5月前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
5月前
|
存储 算法 数据可视化
LeetCode 132题详解:使用动态规划与中心扩展法解决分割回文串 II 的最少分割次数问题
LeetCode 132题详解:使用动态规划与中心扩展法解决分割回文串 II 的最少分割次数问题
|
5月前
|
存储 算法 数据可视化
LeetCode 131题详解:高效分割回文串的递归与动态规划方法
LeetCode 131题详解:高效分割回文串的递归与动态规划方法
|
5月前
|
存储 算法 Java
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
【经典算法】Leetcode 141. 环形链表(Java/C/Python3实现含注释说明,Easy)
53 2
|
6月前
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点.
<数据结构>五道LeetCode链表题分析.环形链表,反转链表,合并链表,找中间节点
53 1