前提・実現したいこと
2分探索木をpythonで実装しようと考えています.
とりあえず,ネットに落ちていたものをベースにしようと考えていしたが,
プログラム内self.insert() (Solutionクラスのinsert関数内)とroot.left(Solutionクラスのinsert関数内)が何を表しているのかがわかりません.
selfがつくのはインスタンス変数などを呼び出すときに使用する時なのでは
またroot.leftは,rootをインスタンス化しなければつかえないのでは
発生している問題・エラーメッセージ
エラーは出ていません
該当のソースコード
python
1class Node: 2 def __init__(self,data): 3 self.right=self.left=None 4 self.data = data 5 6class Solution: 7 def insert(self,root,data): 8 if root==None: 9 return Node(data) 10 else: 11 if data<=root.data: 12 cur=self.insert(root.left,data) 13 root.left=cur 14 else: 15 cur=self.insert(root.right,data) 16 root.right=cur 17 return root 18 19 def getHeight(self,root): 20 if root == None: 21 return -1 22 return 1 + max(self.getHeight(root.left), self.getHeight(root.right)) 23 24T=int(input()) 25myTree=Solution() 26root=None 27for i in range(T): 28 data=int(input()) 29 root=myTree.insert(root,data) 30height=myTree.getHeight(root) 31print(height)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/29 13:38
2020/10/29 14:03
2020/10/29 14:30
2020/10/29 15:28 編集
2020/10/30 12:37
2020/10/31 17:20
2020/11/01 04:35