Example #1
0
 def insertionSortList1(self, head: ListNode) -> ListNode:
     if not head:
         return head
     cur, nxt = head, head.next
     dummy = ListNode(float('-inf'))
     dummy.next = head
     while nxt:
         if nxt.val >= cur.val:
             cur, nxt = nxt, nxt.next
         else:
             cur.next = nxt.next
             pre1, pre2 = dummy, dummy.next
             while nxt.val > pre2.val:
                 pre1, pre2 = pre2, pre2.next
             pre1.next = nxt
             nxt.next = pre2
             nxt = cur.next
     return dummy.next
Example #2
0
        while head:
            l.append(head)
            head = head.next
        root = l.pop()
        head = root
        while l:
            head.next = l.pop()
            head = head.next
        head.next = None
        return root

    def reverseList(self, head: ListNode) -> ListNode:
        if not head:
            return []
        pre = None
        cur = head
        while cur:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        return pre


if __name__ == "__main__":
    a = Solution()
    l = ListNode([1, 2, 3, 4, 5])
    # q = a.reverseList(l)
    print(l)
    # print(q)
Example #3
0
                    break
            p1 = p1.next
            length += 1
        return head

    def insertionSortList1(self, head: ListNode) -> ListNode:
        if not head:
            return head
        cur, nxt = head, head.next
        dummy = ListNode(float('-inf'))
        dummy.next = head
        while nxt:
            if nxt.val >= cur.val:
                cur, nxt = nxt, nxt.next
            else:
                cur.next = nxt.next
                pre1, pre2 = dummy, dummy.next
                while nxt.val > pre2.val:
                    pre1, pre2 = pre2, pre2.next
                pre1.next = nxt
                nxt.next = pre2
                nxt = cur.next
        return dummy.next


if __name__ == "__main__":
    a = Solution()
    l = ListNode([4, 2, 1, 3])
    print(l)
    print(a.insertionSortList(l))
Example #4
0
from 链表类 import ListNode


class Solution:
    def getDecimalValue(self, head: ListNode) -> int:
        ret = 0
        if not head:
            return []
        while head:
            if head.val == 0:
                head = head.next
            else:
                break
        while head:
            ret = ret << 1
            ret += head.val
            head = head.next
        return ret


if __name__ == "__main__":
    a = Solution()
    l = ListNode([1, 0, 1])
    print(a.getDecimalValue(l))