本文主要是介绍输出链表,递归从根到当前节点输出某个属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 简介
- 传统代码
- 改进后的代码
简介
递归输出,递归获取从根到当前节点的某个属性
传统代码
class LinkNode:def __init__(self, name, parent_node=None):self.name = nameself.parent_node = parent_nodedef __repr__(self):return f'LinkNode({self.name}, {self.parent_node})'if __name__ == '__main__':nation = LinkNode('中国')prov = LinkNode('湖北省', nation)city = LinkNode('天门市', prov)print(city)
输出结果如下所示,输出的链表嵌套关系过于繁琐:
LinkNode(天门市, LinkNode(湖北省, LinkNode(中国, None)))
改进后的代码
如下代码实现从根到当前节点属性值的简洁输出:
class LinkNode:def __init__(self, name, parent_node=None):self.name = nameself.parent_node = parent_node@propertydef dfs_name(self):if self.parent_node is None:return self.namereturn self.parent_node.dfs_name + ',' + self.namedef __repr__(self):return f'LinkNode({self.dfs_name})'if __name__ == '__main__':nation = LinkNode('中国')prov = LinkNode('湖北省', nation)city = LinkNode('天门市', prov)print(city)
输出结果如下所示:
LinkNode(中国,湖北省,天门市)
这篇关于输出链表,递归从根到当前节点输出某个属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!