基础算法的python实现

字符串反转

def reverseString(s):
    begin = 0
    end = len(s)-1
    ss = list(s)
    while(end>begin):
        ss[begin], ss[end] = ss[end], ss[begin]
        end -= 1
        begin += 1
    return ''.join(ss)

链表倒序

# node class
class Node:
    def __init__(self, value=None):
        self.value = value
        self.next = None
    # traversal
    def traversal(self):
        idx = 0
        print('idx: {}, value: {}'.format(idx, self.value))
        p1 = self.next
        while p1 is not None:
            idx += 1
            print('idx: {}, value: {}'.format(idx, p1.value))
            p1 = p1.next

# creat linked lists
def creat_linked_list(v=[0]):
    head = Node(v[0])
    p1 = head
    for i in range(1, len(v)):
        p1.next = Node(v[i])
        p1 = p1.next
    return head

# linked lists traversal
def linked_list_traversal(head=None):
    

# linked lists reverse
class linked_list_reverse:
    def __init__(self, head=None):
        self.old_head = head
        self.new_head = None

    def _reverse(self, Node=None):
        if Node is None or Node.next is None:
            self.new_head = Node
            return self.new_head
        p1 = self._reverse(Node.next)
        p1.next = Node
        Node.next = None
        return Node

    def reverse(self):
        self._reverse(self.old_head)
        return self.new_head

posted @ 2019-12-02 12:13  JetBlock  阅读(112)  评论(0)    收藏  举报