看一百遍美女,美女也不一定是你的。但你刷一百遍算法,知识就是你的了~~
谁能九层台,不用累土起!
题目
给你一个链表的头节点 head
和一个特定值 x
,请你对链表进行分隔,使得所有 **小于 x
的节点都出现在 大于或等于 x
的节点之前。
你不需要 保留 每个分区中各节点的初始相对位置。
示例 1:
1 | 输入: head = [1,4,3,2,5,2], x = 3 |
示例 2:
1 | 输入: head = [2,1], x = 2 |
提示:
- 链表中节点的数目在范围
[0, 200]
内 -100 <= Node.val <= 100
-200 <= x <= 200
解题思路
- 我们创建两个链表,一个用来存放小于
x
的节点,一个用来存储>=x
的节点 - 遍历
head
,将对应的节点存入对应的链表 - 将小数链表的尾结点指向大数链表的头结点完成拼接
- 拼接后的链表就是我们题目要的链表
解题代码
1 | var partition = function(head, x) { |
如有任何问题或建议,欢迎留言讨论!