Skip to content

Commit c1ce1f2

Browse files
authored
Merge pull request gzc426#382 from Le-Code/master
LettCode 103/104
2 parents 5d511de + 2942484 commit c1ce1f2

File tree

2 files changed

+108
-0
lines changed

2 files changed

+108
-0
lines changed

2018.12.06-leetcode103/Typing.txt

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
public class Main103 {
2+
3+
public static void main(String[] args){
4+
Main103 main = new Main103();
5+
main.test();
6+
}
7+
8+
public void test(){
9+
TreeNode root = new TreeNode(3);
10+
root.left = new TreeNode(9);
11+
root.right = new TreeNode(20);
12+
root.right.left = new TreeNode(15);
13+
root.right.right = new TreeNode(7);
14+
List<List<Integer>> res = zigzagLevelOrder(root);
15+
for (List<Integer> integerList:res){
16+
System.out.println(Arrays.toString(integerList.toArray()));
17+
}
18+
}
19+
20+
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
21+
if (root==null)
22+
return new ArrayList<>();
23+
LinkedList<TreeNode> linkedList = new LinkedList<>();
24+
linkedList.add(root);
25+
boolean reverse = false;
26+
LinkedList<TreeNode> tmpList = new LinkedList();
27+
List<List<Integer>>result = new ArrayList<>();
28+
while (!linkedList.isEmpty()){
29+
TreeNode tmpNode;
30+
List<Integer> curList = new ArrayList<>();
31+
tmpList.clear();
32+
while (true) {
33+
if (!reverse) {
34+
tmpNode = linkedList.pollFirst();
35+
curList.add(tmpNode.val);
36+
if (tmpNode.left!=null){
37+
tmpList.add(tmpNode.left);
38+
}
39+
if (tmpNode.right!=null){
40+
tmpList.add(tmpNode.right);
41+
}
42+
} else {
43+
tmpNode = linkedList.pollLast();
44+
curList.add(tmpNode.val);
45+
if (tmpNode.right!=null)
46+
tmpList.offerFirst(tmpNode.right);
47+
if (tmpNode.left!=null)
48+
tmpList.offerFirst(tmpNode.left);
49+
}
50+
if (linkedList.isEmpty())
51+
break;
52+
}
53+
reverse = !reverse;
54+
if (!curList.isEmpty()){
55+
result.add(curList);
56+
}
57+
if (!tmpList.isEmpty()){
58+
linkedList.addAll(tmpList);
59+
}
60+
}
61+
return result;
62+
}
63+
64+
private class TreeNode{
65+
int val;
66+
TreeNode left;
67+
TreeNode right;
68+
TreeNode(int x){
69+
val = x;
70+
}
71+
}
72+
}

2018.12.07-leetcode104/Typing.txt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
public class Main104 {
2+
public static void main(String[] args){
3+
Main104 main = new Main104();
4+
main.test();
5+
}
6+
7+
public void test(){
8+
TreeNode root = new TreeNode(3);
9+
root.left = new TreeNode(9);
10+
root.right = new TreeNode(20);
11+
root.right.left = new TreeNode(15);
12+
root.right.right = new TreeNode(7);
13+
System.out.println(maxDepth(root));
14+
}
15+
16+
public int maxDepth(TreeNode root) {
17+
int leftDep,rightDep,max;
18+
if (root!=null){
19+
leftDep = maxDepth(root.left);
20+
rightDep = maxDepth(root.right);
21+
max = leftDep>rightDep?leftDep:rightDep;
22+
return max+1;
23+
}
24+
return 0;
25+
}
26+
27+
private class TreeNode{
28+
int val;
29+
TreeNode left;
30+
TreeNode right;
31+
TreeNode(int x){
32+
val = x;
33+
}
34+
}
35+
36+
}

0 commit comments

Comments
 (0)