示例#1
0
    head.next = None
    return start


# Iteration


def reverseList0(head: ListNode) -> ListNode:
    if not head:
        return
    pre = head
    cur = head.next
    while cur:
        temp = cur.next
        cur.next = pre
        pre = cur
        cur = temp
    head.next = None
    return pre


head = ListNode(0)
node = head
for i in range(1, 5):
    node.next = ListNode(i)
    node = node.next

head.lnprint()
ans = reverseList0(head)
ans.lnprint()
示例#2
0
#! usr/bin/python3
from listnode import ListNode


def isPalindrome(head: ListNode) -> bool:
    arr = []
    while head:
        arr.append(head.val)
        head = head.next
    for i in range(len(arr) // 2):
        if arr[i] != arr[-i - 1]:
            return False
    return True


arr1 = [1, 2]

l1 = ListNode(arr1[0])
node = l1
for i in arr1[1:]:
    node.next = ListNode(i)
    node = node.next
ListNode.lnprint(l1)

print(isPalindrome(l1))
示例#3
0
    while l1.next and l2:
        if l2.val < l1.next.val:
            next1, next2 = l1.next, l2.next
            l1.next, l2.next = l2, next1
            l1, l2 = l2, next2
        else:
            l1 = l1.next
    if l2:
        l1.next = l2
    return head


arr1 = [-10, -9, -6, -4, 1, 9, 9]
arr2 = [-5, -3, 0, 7, 8, 8]
l1 = ListNode(arr1[0])
node = l1
for i in arr1[1:]:
    node.next = ListNode(i)
    node = node.next
ListNode.lnprint(l1)

l2 = ListNode(arr2[0])
node = l2
for i in arr2[1:]:
    node.next = ListNode(i)
    node = node.next
ListNode.lnprint(l2)

l0 = mergeTwoLists(l1, l2)
ListNode.lnprint(l0)