字符串反转
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