Skip to content

Commit a439d2e

Browse files
authored
Merge pull request #1248 from ivan1016017/april22
adding algo
2 parents f5e0966 + 07775b1 commit a439d2e

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from typing import List, Union, Collection, Mapping, Optional
2+
from abc import ABC, abstractmethod
3+
4+
class TreeNode:
5+
def __init__(self, val=0, left=None, right=None):
6+
self.val = val
7+
self.left = left
8+
self.right = right
9+
10+
class Solution:
11+
def countNodes(self, root: Optional[TreeNode]) -> int:
12+
13+
if not root:
14+
return 0
15+
else:
16+
return self.countNodes(root.left) + self.countNodes(root.right) + 1
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import unittest
2+
from src.my_project.interviews.top_150_questions_round_15\
3+
.count_complete_nodes import TreeNode, Solution
4+
5+
class CountNodesTestCase(unittest.TestCase):
6+
7+
def test_count_none(self):
8+
solution = Solution()
9+
tree = None
10+
output = solution.countNodes(root=tree)
11+
self.assertEqual(0, output)
12+
13+
14+
def test_count_non_empty_tree(self):
15+
solution = Solution()
16+
tree = TreeNode(1, TreeNode(2), TreeNode(3))
17+
output = solution.countNodes(root=tree)
18+
self.assertEqual(3, output)

0 commit comments

Comments
 (0)