Skip to content

Commit 0bf4f8e

Browse files
committed
Signed-off-by: yuduozhou <[email protected]>
1 parent 4ff3cfa commit 0bf4f8e

4 files changed

+90
-1
lines changed

BSTIsBalanced.java

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* Definition for binary tree
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Solution {
11+
public boolean isBalanced(TreeNode root) {
12+
// Start typing your Java solution below
13+
// DO NOT write main() function
14+
if (root == null) return true;
15+
return (Math.abs(getMaxHeight(root.left) - getMaxHeight(root.right)) <= 1) &&
16+
isBalanced(root.left) && isBalanced(root.right);
17+
}
18+
19+
public int getMaxHeight(TreeNode root){
20+
if (root == null) return 0;
21+
return Math.max(getMaxHeight(root.left), getMaxHeight(root.right)) + 1;
22+
}
23+
}

BSTLevelOrderTraversal_II.java

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* Definition for binary tree
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Solution {
11+
public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
12+
// Start typing your Java solution below
13+
// DO NOT write main() function
14+
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
15+
if (root == null) return result;
16+
Stack<ArrayList<Integer>> aStack = new Stack<ArrayList<Integer>>();
17+
Queue<TreeNode> nodeQ = new LinkedList<TreeNode>();
18+
TreeNode dummy = new TreeNode(0);
19+
nodeQ.add(root);
20+
nodeQ.add(dummy);
21+
while(nodeQ.size() > 0){
22+
ArrayList<Integer> level = new ArrayList<Integer>();
23+
while(nodeQ.peek() != dummy){
24+
TreeNode temp = nodeQ.poll();
25+
level.add(temp.val);
26+
if (temp.left != null) nodeQ.add(temp.left);
27+
if (temp.right != null) nodeQ.add(temp.right);
28+
}
29+
aStack.add(level);
30+
if (nodeQ.size() == 1 && nodeQ.peek() == dummy) break;
31+
nodeQ.add(nodeQ.poll());
32+
}
33+
while(!aStack.empty()){
34+
result.add(aStack.pop());
35+
}
36+
return result;
37+
}
38+
}

ConvertSortedArrayToBST.java

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Definition for binary tree
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Solution {
11+
public TreeNode sortedArrayToBST(int[] num) {
12+
// Start typing your Java solution below
13+
// DO NOT write main() function
14+
if (num == null || num.length == 0) return null;
15+
return sortedArrayToBST(num, 0, num.length - 1);
16+
17+
}
18+
public TreeNode sortedArrayToBST(int[] num, int start, int end) {
19+
// Start typing your Java solution below
20+
// DO NOT write main() function
21+
if (start == end) return new TreeNode(num[start]);
22+
if (start > end) return null;
23+
int mid = (start + end) / 2;
24+
TreeNode root = new TreeNode(num[mid]);
25+
root.left = sortedArrayToBST(num, start, mid - 1);
26+
root.right = sortedArrayToBST(num, mid + 1, end);
27+
return root;
28+
}
29+
}

ZigZagPuzzle.java

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ public String convert(String s, int nRows) {
33
// Start typing your Java solution below
44
// DO NOT write main() function
55
int length = s.length();
6-
if (length == 0) return "";
76
if (length <= nRows || nRows == 1) return s;
87
char[] chars = new char[length];
98
int step = 2 * (nRows - 1);

0 commit comments

Comments
 (0)