Skip to content

Commit 30805bf

Browse files
committed
https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree/
1 parent 15f5273 commit 30805bf

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-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/reverse-odd-levels-of-binary-tree/
14+
1315
https://leetcode.cn/problems/smallest-even-multiple/
1416

1517
https://leetcode.cn/problems/design-underground-system/
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts";
2+
3+
function reverseOddLevels(root: TreeNode | null): TreeNode | null {
4+
if (!root) return null;
5+
let depth = 0;
6+
level([root], (nodes) => {
7+
if (depth & 1) {
8+
nodes.map((a) => a.val).reverse().forEach((v, i) =>
9+
nodes[i].val = v
10+
);
11+
}
12+
depth++;
13+
});
14+
return root;
15+
}
16+
export default reverseOddLevels;
17+
export function level(nodes: TreeNode[], output: (r: TreeNode[]) => void) {
18+
if (nodes.length === 0) return;
19+
20+
output(nodes);
21+
22+
level(
23+
nodes
24+
.map((n) => [n.left, n.right].filter(Boolean) as TreeNode[])
25+
.flat(),
26+
output,
27+
);
28+
}

0 commit comments

Comments
 (0)