美文网首页
96.链表划分

96.链表划分

作者: 八菜冰 | 来源:发表于2018-12-19 23:34 被阅读0次
  • 描述
    给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。
    你应该保留两部分内链表节点原有的相对顺序。
  • 样例
    给定链表 1->4->3->2->5->2->null,并且 x=3
    返回 1->2->2->4->3->5->null。
  • Solution
    利用二分思想,小于x的一个链表,大于x的一个链表,再整合两个链表。
"""
Definition of ListNode
class ListNode(object):
    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""

class Solution:
    """
    @param head: The first node of linked list
    @param x: An integer
    @return: A ListNode
    """
    def partition(self, head, x):
        # write your code here
        headl, headr = ListNode(0), ListNode(0)
        head2, head1 = headl, headr
        if head is None:
            return 
        while head is not None:
            if x > head.val:
                head1.next = head
                head1 = head1.next
            else:
                head2.next = head
                head2 = head2.next
            head = head.next
        head1.next = headl.next
        head2.next = None

        return headr.next

相关文章

  • 96. 链表划分

    给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对...

  • 96.链表划分

    描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的...

  • LintCode 练习代码

    35.翻转链表 165. 合并两个排序链表 96. 链表划分 166. 链表倒数第n个节点 java语言一次循环定...

  • 链表划分

    题目地址两个注意点1、dummy node2、more.next = None 记得较大的链表的next值为non...

  • 链表划分

    LeetCode 86.Partition List已知链表头节点指针head与数值X,将所有小于x的节点放在大于...

  • 链表划分

    描述给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。 你应该保留两部分内链表节点原有...

  • 链表的划分

    声明: 本总结仅为个人学习总结,以防止遗忘而作,不得转载和商用。题目:给定一个单链表和数值x,划分链表使得所有小于...

  • OJ lintcode 链表划分

    给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对...

  • [LeetCode]86. Partition List

    86. Partition List 题意: 给出一个链表和一个数字M, 将这个链表划分为两个链表.第一个链表是小...

  • 单向链表划分区域

    题目: 思路1: 把单向链表转化为结点数组,利用数组的partition过程(快排中),划分成要求的大于区小于区等...

网友评论

      本文标题:96.链表划分

      本文链接:https://www.haomeiwen.com/subject/xpfekqtx.html