【LeetCode】Partition List 解题报告
2014-12-12 11:21
381 查看
【题目】
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的都挂到head1后,把大于等于x的都放到head2后,最后再把大于等于的链表挂到小于链表的后面就可以了。
这道题不难,主要是给不熟悉指针的同学学习交流。
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的都挂到head1后,把大于等于x的都放到head2后,最后再把大于等于的链表挂到小于链表的后面就可以了。
这道题不难,主要是给不熟悉指针的同学学习交流。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode partition(ListNode head, int x) { ListNode lessHead = new ListNode(0); ListNode greaterHead = new ListNode(0); ListNode node = head, less = lessHead, greater = greaterHead; while (node != null) { ListNode next = node.next; if (node.val < x) { less.next = node; less = less.next; less.next = null; } else { greater.next = node; greater = greater.next; greater.next = null; } node = next; } less.next = greaterHead.next; return lessHead.next; } }
相关文章推荐
- 【LeetCode】Partition List 解题报告
- [LeetCode] Partition List 解题报告
- [LeetCode]Partition List, 解题报告
- [LeetCode] Partition List 解题报告
- [leetcode] 200. Number of Islands 解题报告
- leetcode第七周解题报告
- LeetCode 1. Two Sum 解题报告
- [Leetcode] 56. Merge Intervals 解题报告
- LeetCode 409. Longest Palindrome 解题报告
- Divide Two Integers LeetCode 解题报告
- 【LeetCode】479. Largest Palindrome Product 解题报告(Python)
- [LeetCode] Divide Two Integers 解题报告
- [LeetCode]Roman to Integer,解题报告
- Leetcode Big Manipulation 解题报告
- [Leetcode] Length of Last Word 解题报告
- [Leetcode] 367. Valid Perfect Square 解题报告
- 【LeetCode】Valid Number 解题报告
- [Leetcode] 599. Minimum Index Sum of Two Lists 解题报告
- Leetcode 90. Subsets II 子集2 解题报告
- Leetcode 349. Intersection of Two Arrays 解题报告 Python Java