コード例 #1
0
def palindrome(listHead):
    n = listHead
    reversedList = None
    while n!= None:
        reversedList = linkedListNode.addToHead(reversedList, linkedListNode(n.data))
        n = n.next

    # now compare both lists
    while listHead!= None:
        if listHead.data != reversedList.data:
            return False
        listHead = listHead.next
        reversedList = reversedList.next

    return True
コード例 #2
0
def sumLists(num1, num2):
    n1 = num1
    n2 = num2
    ans = None
    carry = 0
    sum = 0

    while n1 != None or n2 != None or carry != 0:
        n1d = 0 if n1 == None else n1.data
        n2d = 0 if n2 == None else n2.data
        sum = n1d + n2d + carry
        temp = linkedListNode(sum % 10, None)
        ans = linkedListNode.addToTail(ans, temp)
        carry = (sum - temp.data) / 10
        n1 = None if n1 == None else n1.next
        n2 = None if n2 == None else n2.next

    return ans
コード例 #3
0
"Given a linked list, delete a node which is neith head nor tail."

from LinkedListNode import linkedListNode


def deleteFromBetween(listHead):
    if listHead == None or listHead.next == None or listHead.next.next == None:
        return False

    listHead.next = listHead.next.next
    return True


a = linkedListNode(1)
b = linkedListNode(2, a)
c = linkedListNode(3, b)
d = linkedListNode(4, c)
e = linkedListNode(5, d)
f = linkedListNode(6, e)

f.displayFromHere()
print "\n\t-:AFTER DELETION:-\n"

assert deleteFromBetween(f)

f.displayFromHere()
コード例 #4
0
from LinkedListNode import linkedListNode

def palindrome(listHead):
    n = listHead
    reversedList = None
    while n!= None:
        reversedList = linkedListNode.addToHead(reversedList, linkedListNode(n.data))
        n = n.next

    # now compare both lists
    while listHead!= None:
        if listHead.data != reversedList.data:
            return False
        listHead = listHead.next
        reversedList = reversedList.next

    return True



a = linkedListNode(1)
b = linkedListNode(2,a)
c = linkedListNode(3,b)
d = linkedListNode(3,c)
e = linkedListNode(2,d)
f = linkedListNode(1,e)

print palindrome(f)


コード例 #5
0
    return ans


def sumListsReversed(num1, num2):
    n1 = num1
    n2 = num2
    ans = None
    carry = 0
    sum = 0

    while n1 != None or n2 != None or carry != 0:
        n1d = 0 if n1 == None else n1.data
        n2d = 0 if n2 == None else n2.data
        sum = n1d + n2d + carry
        temp = linkedListNode(sum % 10, None)
        ans = linkedListNode.addToTail(ans, temp)
        carry = (sum - temp.data) / 10
        n1 = None if n1 == None else n1.next
        n2 = None if n2 == None else n2.next

    return ans


num1 = linkedListNode.addToTail(
    None, linkedListNode(7, linkedListNode(1, linkedListNode(6, None))))
num2 = linkedListNode.addToTail(
    None, linkedListNode(5, linkedListNode(9, linkedListNode(2, None))))

ans = sumLists(num1, num2)
ans.displayFromHere()