博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Partition List
阅读量:5368 次
发布时间:2019-06-15

本文共 1221 字,大约阅读时间需要 4 分钟。

题目描述:()

Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.

You should preserve the original relative order of the nodes in each of the two partitions.

For example,

Given 1->4->3->2->5->2 and x = 3,
return 1->2->2->4->3->5.

解题思路:

将链表分为两个链表,一个链表上所有节点的值都小于x,另一个链表为大于等于x,然后连接两个链表。

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode* partition(ListNode* head, int x) {12         ListNode left(-1);13         ListNode right(-1);14         15         ListNode *pLeft = &left;16         ListNode *pRight = &right;17         for (ListNode *cur = head; cur != NULL; cur = cur->next) {18             if (cur->val < x) {19                 pLeft->next = cur;20                 pLeft = cur;21             } else {22                 pRight->next = cur;23                 pRight = cur;24             }25         }26         27         pLeft->next = right.next;28         pRight->next = NULL;29         30         return left.next;31     }32 };

 

转载于:https://www.cnblogs.com/skycore/p/4903122.html

你可能感兴趣的文章
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Linux常用命令(十二)
查看>>
Linux常用命令(十五)
查看>>
Linux常用命令(十四)
查看>>
Linux常用命令(十七)
查看>>
Linux常用命令(十六)
查看>>
day 3 修改haproxy.cfg 作业
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
Python/jquery
查看>>
【BZOJ】【2132】圈地计划
查看>>
Java有没有goto?
查看>>
求不相邻金币相加和的最大值--动态规划1
查看>>
[转][osg]探索未知种族之osg类生物【目录】
查看>>