2023年6月22日发(作者:)
Python---树、⼆叉树练习题Python——树、⼆叉树相关练习题1.⼀棵树是否为另⼀颗树的⼦树问题描述:有两个⼤⼩不同的⼆叉树,T1和T2,设计⼀种算法来判定T2是否为T1的⼦树。问题⽰例:例⼦中的T2是T1的⼦树,返回True,如果不是就返回Flase,图中的T2就是T1的⼦树。代码:#定义树的结构,左右置空class TreeNode: def __init__(self,val): = val , = None,None#T1,T2为⼆叉树的根节点,返回值为布尔值,如果T2是T1的字数就返回True,反之为False
class Solution: def get(self,root,rt): if root is None: ('#') return (str()) (,rt) (,rt) def isSubtree(self,T1,T2): rt = [] (T1,rt) t1 = ','.join(rt) rt = [] (T2,rt) t2 = ','.join(rt) return (t2)!= -1#主函数中写⼊测试数据if __name__ == '__main__': root1 = TreeNode(1) = TreeNode(2) = TreeNode(3) =TreeNode(4) root2 = TreeNode(3) = TreeNode(4) solution = Solution() print(ree(root1,root2))输出结果True2.最⼩字数1.问题描述给出⼀个⼆叉树,找到和最⼩的字数,并返回其根节点。2.问题描述如图所⽰,输出为1。代码:class TreeNode: def __init__(self, val): = val , = None, Noneimport sysclass Solution: def findSubtree(self, root): m_weight = e = None (root) return def helper(self, root): if root is None: return 0 left_weight = () right_weight = () if left_weight + right_weight + < m_weight: m_weight = left_weight + right_weight + = root return left_weight + right_weight + printTree(root): res = [] if root is None: print(res) queue = [] (root) while len(queue) != 0: tmp = [] length = len(queue) for i in range(length): r = (0) if is not None: () if is not None: () () (tmp) return (res)#
主函数if __name__ == '__main__': root = TreeNode(1) = TreeNode(-5) = TreeNode(2) = TreeNode(0) = TreeNode(2) = TreeNode(-4) = TreeNode(-5) solution = Solution() print("最⼩⼦树的根节点是:", btree(root).val)
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687381351a5800.html
评论列表(0条)