[LeetCode]86. Partition List
2016-09-10 10:52
330 查看
86. Partition List
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
return
题意:
根据给定链表和给定值X,把大于X值的放在X右边,小于X值的放在X左边。并不改变相对位置,比如4和3都大于等于3,那么他们移到右边后位置仍为4在前,3在后。
思路:
1)链表为空或者只有一个节点,返回即可。
2)定义两个链表list和back,分别存放小于X节点的链表和大于等于X的链表。使用二级指针方便头节点处理。
3)while循环结束后,list和back链表的最后节点的next并未置NULL。所以把back链表尾节点next置NULL。并把back追加到list后面即可。
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->2and x = 3,
return
1->2->2->4->3->5.
题意:
根据给定链表和给定值X,把大于X值的放在X右边,小于X值的放在X左边。并不改变相对位置,比如4和3都大于等于3,那么他们移到右边后位置仍为4在前,3在后。
思路:
1)链表为空或者只有一个节点,返回即可。
2)定义两个链表list和back,分别存放小于X节点的链表和大于等于X的链表。使用二级指针方便头节点处理。
3)while循环结束后,list和back链表的最后节点的next并未置NULL。所以把back链表尾节点next置NULL。并把back追加到list后面即可。
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* partition(struct ListNode* head, int x) { if ( head == NULL || head->next == NULL ) { return head; } struct ListNode *list = NULL; struct ListNode **first = &list; struct ListNode *back = NULL; struct ListNode **second = &back; while ( head ) { if ( head->val < x) { *first = head; first = &(*first)->next; } else { *second = head; second = &(*second)->next; } head = head->next; } *second = NULL; *first = back; return list; }
相关文章推荐
- [leetcode] 86. Partition List 解题报告
- leetcode-86. Partition List
- LeetCode-86. Partition List (JAVA)分区链表
- LeetCode 86. Partition List 链表的划分 Python Solution
- LeetCode86. Partition List
- LeetCode86. Partition List
- 【一天一道LeetCode】#86. Partition List
- [LeetCode] 86. Partition List 分隔链表 @python
- leetcode: 86. Partition List
- LeetCode 86. Partition List
- LeetCode 86. Partition List(链表分区)
- LeetCode 86. Partition List
- Leetcode 86. Partition List
- [LeetCode] 86. Partition List 解题思路
- Leetcode 86. Partition List(链表划分)
- leetcode86. Partition List
- Leetcode 86. Partition List 链表划分 解题报告
- 【LeetCode】86. Partition List
- LeetCode 86. Partition List
- LeetCode||86. Partition List