Skip to content

Commit 9980e77

Browse files
authored
Merge pull request gzc426#374 from sunny-ljc/master
Create Sunny.md
2 parents 3cfbb64 + 8879d53 commit 9980e77

File tree

3 files changed

+70
-0
lines changed

3 files changed

+70
-0
lines changed

2018.12.06-leetcode103/Sunny.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
```java
2+
class Solution {
3+
List<List<Integer>> result = new ArrayList<>();
4+
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
5+
zigzagLevelOrder(root, 0, false);
6+
return result;
7+
}
8+
9+
public void zigzagLevelOrder(TreeNode node, int level, boolean inverse) {
10+
if (node != null) {
11+
if (result.size() <= level) {
12+
result.add(new ArrayList<>());
13+
}
14+
if (inverse) {
15+
result.get(level).add(0, node.val);
16+
}
17+
else {
18+
result.get(level).add(node.val);
19+
}
20+
zigzagLevelOrder(node.left, level+1, !inverse);
21+
zigzagLevelOrder(node.right, level+1, !inverse);
22+
}
23+
}
24+
}
25+
```

2018.12.07-leetcode104/Sunny.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
```java
2+
class Solution {
3+
public int maxDepth(TreeNode root) {
4+
if (root == null) return 0;
5+
return Math.max(maxDepth(root.left, 1), maxDepth(root.right, 1));
6+
}
7+
8+
public int maxDepth(TreeNode node, int level) {
9+
if (node != null) {
10+
level = Math.max(maxDepth(node.left, level+1), maxDepth(node.right, level+1));
11+
}
12+
return level;
13+
}
14+
}
15+
```

2018.12.08-leetcode105/Sunny.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
```java
2+
class Solution {
3+
4+
private int i = 0;
5+
6+
public TreeNode buildTree(int[] preorder, int[] inorder) {
7+
if (preorder == null || preorder.length == 0)
8+
return null;
9+
int val = preorder[i];
10+
int index = inorder.length - 1;
11+
for (; index >= 0; index--) {
12+
if (inorder[index] == val) {
13+
break;
14+
}
15+
}
16+
if (index >= 0) {
17+
TreeNode node = new TreeNode(val);
18+
i++;
19+
if (inorder.length > 1 && i < preorder.length) {
20+
node.left = buildTree(preorder, Arrays.copyOfRange(inorder, 0, index));
21+
if (i < preorder.length) {
22+
node.right = buildTree(preorder, Arrays.copyOfRange(inorder, index+1, inorder.length));
23+
}
24+
}
25+
return node;
26+
}
27+
return null;
28+
}
29+
}
30+
```

0 commit comments

Comments
 (0)