每日一题
分割链表 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的 节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之前(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 示例: 输入: head = 3->5->8->5->10->2->1, x = 5 输出: 3->1->2->10->5->5->8 链接: https://leetcode-cn.com/problems/partition-list-lcci/ //思路:双指针 //第一个指针找到第一个大于x的值 //第二个指针在第一个指针后面找到第一个小于x的值(如果没有找到则证明已经完全分割完成) //交换两指针的值 public ListNode partition ( ListNode head , int x ) { ListNode behind , front ; behind = front = head ; for ( ; behind != null ; behind = behind . next ) { if ( behind . val >= x ) { for ( front = behind . next ; front != null && front . val >= x ; front = front . next )