def lengthNum(head):
length = 0
pt = head
while pt:
length += 1
pt = pt.next
return length
def computeSum(pt1, pt2, count):
if pt1 == None or pt2 == None:
return 0
if count > 0:
flag = computeSum(pt1.next, pt2, count - 1)
result = pt1.val + flag
else:
flag = computeSum(pt1.next, pt2.next, 0)
result = pt1.val + pt2.val + flag
pt1.val = result % 10
return result // 10
def sumOf2Num(head1, head2):
if head1 == None:
return head2
if head2 == None:
return head1
length1 = lengthNum(head1)
length2 = lengthNum(head2)
if length1 < length2:
head1, head2 = head2, head1
length1, length2 = length2, length1
pt1 = head1
pt2 = head2
flag = computeSum(pt1, pt2, length1 - length2)
if flag == 0:
return head1
else:
new_node = ListNode(1)
new_node.next = head1
return new_node
def rotate(matrix):
cols = len(matrix)
rows = len(matrix[0])
for i in range(cols):
for j in range(rows - 1, i - 1, -1):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
for i in range(cols):
matrix[i].reverse()
return matrix