두 갈래 나무의 최대 깊이 (python 구현)
예: 두 갈래 나무[3,9,20,null,null,15,7],
3
/9 20/15 7은 최대 깊이 3을 반환합니다.
출처: 리코드(LeetCode) 링크:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree
코드:
import tree
if __name__=='__main__':
treenode=[3,9,20,None,None,15,7]
T=tree.Tree()
for i in treenode:
T.add(i)
height=T.height
print(" :"+str(height))
실행 결과: 두 갈래 나무의 높이는:3
사용자 정의 트리 구조 (tree):
class Node(object):
def __init__(self,e=-1,lchild=None,rchild=None):
self.e=e
self.lchild=lchild
self.rchild=rchild
#
class Tree(object):
def __init__(self,root=Node(-1,None,None)):
self.root=root
self.height=0
self.MyQueue=[]
#
def add(self,e):
node=Node(e)
if self.root.e==-1:
self.root=node
if not node.e==None:
self.height+=1
self.MyQueue.append(self.root)
else:
treeNode=self.MyQueue[0]
if treeNode.lchild==None:
treeNode.lchild=node
if not node.e==None:
self.height+=1
self.MyQueue.append(treeNode.lchild)
else:
treeNode.rchild=node
self.MyQueue.append(treeNode.rchild)
self.MyQueue.pop(0)
#
def level(self):
if self.root==None:
return
MQ=[]
node=self.root
MQ.append(node)
while MQ:
node=MQ.pop(0)
print(node.e)
if node.lchild:
MQ.append(node.lchild)
if node.rchild:
MQ.append(node.rchild)
#
def front(self,root):
if root==None:
return
print(root.e)
self.front(root.lchild)
self.front(root.rchild)
#
def middle(self,root):
if root==None:
return
self.middle(root.lchild)
print(root.e)
self.middle(root.rchild)
#
def post(self,root):
if root==None:
return
self.post(root.lchild)
self.post(root.rchild)
print(root.e)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.