def unitTest(numList1: list, numList2: list): l1, l2 = genListNode(numList1), genListNode(numList2) obj = Solution() l3 = obj.mergeTwoLists(l1, l2) while l3: print(l3.val) l3 = l3.next
from ListNodePkg import ListNode, genListNode class Solution: def isPalindrome(self, head: ListNode) -> bool: # Iteration 1, put node.val in a list cur = head val_list = [] while cur: val_list.append(cur.val) cur = cur.next # Check val_list[i] == val_list[n - i - 1] len_of_list = len(val_list) for i in range(len_of_list // 2): if val_list[i] != val_list[len_of_list - i - 1]: return False return True if __name__ == "__main__": numList1 = [1, 2, 2, 1] list1 = genListNode(numList1) obj = Solution() isPd = obj.isPalindrome(list1) if isPd: print("This List is palindrome.") else: print("This List is NOT palindrome.")
def partition(self, head: ListNode, x: int) -> ListNode: # 遍历所有节点: # (1)所有小于x的节点放在新链表list1 # (2)所有大于或等于x的节点都放在新链表list2 # (3)list1的尾节点指向list2的头节点 dummy1 = head1 = ListNode(float('-inf')) dummy2 = head2 = ListNode(float('-inf')) while head: if head.val < x: head1.next = ListNode(head.val) head1 = head1.next else: head2.next = ListNode(head.val) head2 = head2.next head = head.next head1.next = dummy2.next return dummy1.next if __name__ == "__main__": numList = [[1, 4, 3, 2, 5, 2], [2, 1]] for nums in numList: list1 = genListNode(nums) obj = Solution() list2 = obj.partition(list1, 3) head = list2 while head: print(head.val) head = head.next