Skip to content

Commit e6ddbf1

Browse files
committed
https://leetcode.cn/problems/count-complete-tree-nodes/
1 parent 2639c16 commit e6ddbf1

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ leetcode 测试
1010

1111
##### 包含的内容如下
1212

13+
https://leetcode.cn/problems/count-complete-tree-nodes/
14+
1315
https://leetcode.cn/problems/broken-calculator
1416

1517
https://leetcode.cn/problems/pairs-with-sum-lcci/

count-complete-tree-nodes/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";
2+
3+
export default function countNodes(root: TreeNode | null): number {
4+
if (root === null) return 0;
5+
let left = 0,
6+
right = 0;
7+
let curNode: TreeNode | null = root;
8+
while (curNode !== null) {
9+
left++;
10+
curNode = curNode.left;
11+
}
12+
curNode = root;
13+
while (curNode !== null) {
14+
right++;
15+
curNode = curNode.right;
16+
}
17+
if (left === right) {
18+
return 2 ** left - 1;
19+
}
20+
return 1 + countNodes(root.left) + countNodes(root.right);
21+
}

0 commit comments

Comments
 (0)