1759. 二叉樹的結點
阿新 • • 發佈:2020-08-15
1759.二叉樹的結點
中文English
給出一棵二叉樹,返回其節點數。
樣例
樣例 1:
輸入:
{1,#,2,3}
1
\
2
/
3
輸出:
3
樣例 2:
輸入:
{1,2,3}
1
/ \
2 3
輸出:
3
輸入測試資料(每行一個引數)如何理解測試資料?
遞迴寫法:
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right= None, None """ class Solution: """ @param root: the root of the binary tree @return: the number of nodes """ def __init__(self): self.visted = set() def getAns(self, root): # Write your code here if not root: return 0 if id(root) not inself.visted: self.visted.add(id(root)) self.getAns(root.left) self.getAns(root.right) return len(self.visted)
非遞迴寫法:
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right= None, None """ class Solution: """ @param root: the root of the binary tree @return: the number of nodes """ def getAns(self, root): # Write your code here #非遞迴寫法 if not root: return 0 stack = [root] visted = set() while stack: pop_node = stack.pop() if id(pop_node) not in visted: visted.add(id(pop_node)) if pop_node.left: stack.append(pop_node.left) if pop_node.right: stack.append(pop_node.right) return len(visted)