Leetcodeにて問題を解いているのですが
もしよろければコードの意味を
教えていただけますと助かります。
下記の問題を解いています。(言語はPythonです)
104. Maximum Depth of Binary Tree
答えは
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxDepth(self, root: TreeNode) -> int: if root is None: return 0 return max(self.maxDepth(root.left), self.maxDepth(root.right)) + 1
なのですが
(参考資料)
ちょっとコードの意味が分からないでおります。。
以下質問です。
質問1,
root = [3,9,20,null,null,15,7]
を図にすると、
3 / \ 9 20 / \ / \ null null 15 7
になると予測しているのですが
これは正しいのでしょうか?正しいとするなら、
[3,9,20,null,null,15,7]
のリストがなぜこのようなツリー構造として認識されるのかがよくわかりません。
これはそういうものと理解するしかないのでしょうか?
質問2,
right, leftとはなんでしょうか?
こちらはコードに定義されているっぽい記載があるのですが
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right
Printして中身を見てみたのですが
print(root.left) print(root.right)
よくわからない結果が返ってきました。
TreeNode{val: 9, left: None, right: None} TreeNode{val: 20, left: TreeNode{val: 15, left: None, right: None}, right: TreeNode{val: 7, left: None, right: None}} None None TreeNode{val: 15, left: None, right: None} TreeNode{val: 7, left: None, right: None} None None None None
このような結果が返ってくる原理がよくわかりません。。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。