一、二叉树子节点个数

#初始化叶子节点和根结点
class treeNode():
    def __init__(self,data=-1,left=None,right=None):
        self.data=data
        self.left=left
        self.right=right
    def __str__(self):
        return str(self.data)
#递归计算包括根节点在内的所有节点个数
def sd_Node(root):
    if root is None:
        return 0
    else:
        left=sd_Node(root.left)
        right=sd_Node(root.right)
        return left+right+1
#测试
if __name__ == '__main__':
    root = treeNode(1,
                    treeNode(2, treeNode(9), treeNode(4)),
                    treeNode(5))
    sd=sd_Node(root)
    print(sd)

二、二叉树深度

 1 #初始化叶子节点和根结点
 2 class treeNode():
 3     def __init__(self,data,left=None,right=None):
 4         self.data=data
 5         self.left=left
 6         self.right=right
 7     def __str__(self):
 8         return str(self.data)
 9 #遍历二叉树的左右分支,比较大小,返回最大的值,即为深度
10 def sd_Node(root):
11     #判断是否为None
12     if root is None:
13         return 0
14     else:
15         #左分支深度
16         left=sd_Node(root.left)+1
17         #右分支深度
18         right=sd_Node(root.right)+1
19         #比较,返回
20         if left > right:
21             return left
22         else:
23             return right
24 if __name__ == '__main__':
25     root = treeNode(1,treeNode(1),treeNode(1))
26     sd=sd_Node(root)
27     print(sd)

三、二叉树反转

 1 #初始化叶子节点和根结点
 2 class treeNode():
 3     def __init__(self,data,left=None,right=None):
 4         self.data=data
 5         self.left=left
 6         self.right=right
 7     def __str__(self):
 8         return str(self.data)
 9 #递归反转左右节点
10 def fz_tree(root):
11     if root is None:
12         return
13     else:
14         root.left,root.right=fz_tree(root.right),fz_tree(root.left)
15         return  root
16 #前序遍历输出
17 def s_print(root):
18     if root:
19         print(root.data)
20         s_print(root.left)
21         s_print(root.right)
22 #测试
23 if __name__ == '__main__':
24     root = treeNode(1,
25                     treeNode(2,treeNode(3),treeNode(4)),
26                     treeNode(5,treeNode(6)))
27     rot=fz_tree(root)
28     s_print(rot)

 

posted on 2018-12-06 23:06  痴人谈情  阅读(523)  评论(0编辑  收藏  举报