python 用字符串,链表和递归来练习问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 用字符串,链表和递归来练习问题相关的知识,希望对你有一定的参考价值。

#Linked List recursion practice

class Link:
	
	def __init__(self, value, next=None):
		self.value = value
		self.next = next
	
	def __repr__(self):
		return str(self.value) + "->(" + str(self.next) + ")"
		
		
		
#problem 1
#Implement a function that takes a string and uses recursion to make a linked list of characters, or 1 byte long strings. Hint use slice indexes on the string !
"""
x = "Hello world"
=> None
   charlist(x)
=> H->(e->(l->(l->(o->( ->(w->(o->(r->(l->(d->(None)))))))))))
"""

def charlist(string):
	if len(string) == 0:
		return None
	else:
		return Link(string[0], charlist(string[1:]))
		
		
#problem 2
#implement a function that takes a linked list of characters and uses recursion to concat those characters back into a string.
"""
=> None
   x = "Hello world"
=> None
   f = charlist(x)
=> None
   lst_to_string(f)
=> 'Hello world'
"""

def lst_to_string(lst):
	if lst == None:
		return ""
	else:
		return lst.value + lst_to_string(lst.next)

以上是关于python 用字符串,链表和递归来练习问题的主要内容,如果未能解决你的问题,请参考以下文章

递归:一维链表和数组

Leetcode练习(Python):链表类:第206题:反转链表:反转一个单链表。

Leetcode练习(Python):链表类:第86题:分隔链表:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点

玩转数据结构:第5章 链表和递归

玩转数据结构——链表和递归

二叉树练习题3-最近公共祖先