|
5 | 5 | import java.util.ArrayList;
|
6 | 6 | import java.util.List;
|
7 | 7 |
|
8 |
| -/** |
9 |
| - * 545. Boundary of Binary Tree |
10 |
| - * |
11 |
| - * Given a binary tree, return the values of its boundary in anti-clockwise direction starting from root. |
12 |
| - * Boundary includes left boundary, addLeaves, and right boundary in order without duplicate nodes. |
13 |
| - * Left boundary is defined as the path from root to the left-most node. |
14 |
| - * Right boundary is defined as the path from root to the right-most node. |
15 |
| - * If the root doesn't have left subtree or right subtree, |
16 |
| - * then the root itself is left boundary or right boundary. |
17 |
| - * Note this definition only applies to the input binary tree, and not applies to any subtrees. |
18 |
| - * The left-most node is defined as a leaf node you could reach when you always firstly travel |
19 |
| - * to the left subtree if exists. If not, travel to the right subtree. |
20 |
| - * Repeat until you reach a leaf node. |
21 |
| - * The right-most node is also defined by the same way with left and right exchanged. |
22 |
| -
|
23 |
| - Example 1 |
24 |
| - Input: |
25 |
| - 1 |
26 |
| - \ |
27 |
| - 2 |
28 |
| - / \ |
29 |
| - 3 4 |
30 |
| -
|
31 |
| - Ouput: |
32 |
| - [1, 3, 4, 2] |
33 |
| -
|
34 |
| - Explanation: |
35 |
| - The root doesn't have left subtree, so the root itself is left boundary. |
36 |
| - The addLeaves are node 3 and 4. |
37 |
| - The right boundary are node 1,2,4. Note the anti-clockwise direction means you should output reversed right boundary. |
38 |
| - So order them in anti-clockwise without duplicates and we have [1,3,4,2]. |
39 |
| -
|
40 |
| -
|
41 |
| - Example 2 |
42 |
| - Input: |
43 |
| - ____1_____ |
44 |
| - / \ |
45 |
| - 2 3 |
46 |
| - / \ / |
47 |
| -4 5 6 |
48 |
| - / \ / \ |
49 |
| - 7 8 9 10 |
50 |
| -
|
51 |
| - Ouput: |
52 |
| - [1,2,4,7,8,9,10,6,3] |
53 |
| -
|
54 |
| - Explanation: |
55 |
| - The left boundary are node 1,2,4. (4 is the left-most node according to definition) |
56 |
| - The addLeaves are node 4,7,8,9,10. |
57 |
| - The right boundary are node 1,3,6,10. (10 is the right-most node). |
58 |
| - So order them in anti-clockwise without duplicate nodes we have [1,2,4,7,8,9,10,6,3]. |
59 |
| -
|
60 |
| - */ |
61 | 8 | public class _545 {
|
62 | 9 | public static class Solution1 {
|
63 | 10 | public List<Integer> boundaryOfBinaryTree(TreeNode root) {
|
|
0 commit comments