Skip to content

Commit 5ddf871

Browse files
committed
2020-4-18
1 parent 254be40 commit 5ddf871

File tree

7 files changed

+156
-0
lines changed

7 files changed

+156
-0
lines changed

lcci0403_list_of_depth/ListNode.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package lcci0403_list_of_depth;
2+
3+
public class ListNode {
4+
int val;
5+
6+
ListNode next;
7+
8+
ListNode(int x) {
9+
val = x;
10+
}
11+
}

lcci0403_list_of_depth/Solution.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package lcci0403_list_of_depth;
2+
3+
import java.util.ArrayList;
4+
import java.util.LinkedList;
5+
import java.util.List;
6+
import java.util.Queue;
7+
8+
/**
9+
* 层序遍历。
10+
*
11+
* 时间复杂度和空间复杂度均是O(n),其中n为树中的节点个数。
12+
*
13+
* 执行用时:1ms,击败98.68%。消耗内存:37.9MB,击败100.00%。
14+
*/
15+
public class Solution {
16+
public ListNode[] listOfDepth(TreeNode tree) {
17+
if (null == tree) {
18+
return new ListNode[0];
19+
}
20+
List<ListNode> list = new ArrayList<>();
21+
Queue<TreeNode> queue = new LinkedList<>();
22+
queue.add(tree);
23+
while (!queue.isEmpty()) {
24+
int qSize = queue.size();
25+
ListNode dummyHead = new ListNode(-1), cur = dummyHead;
26+
for (int i = 0; i < qSize; i++) {
27+
TreeNode now = queue.poll();
28+
cur.next = new ListNode(now.val);
29+
cur = cur.next;
30+
if (null != now.left) {
31+
queue.add(now.left);
32+
}
33+
if (null != now.right) {
34+
queue.add(now.right);
35+
}
36+
}
37+
list.add(dummyHead.next);
38+
}
39+
ListNode[] result = new ListNode[list.size()];
40+
for (int i = 0; i < result.length; i++) {
41+
result[i] = list.get(i);
42+
}
43+
return result;
44+
}
45+
}

lcci0403_list_of_depth/TreeNode.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package lcci0403_list_of_depth;
2+
3+
public class TreeNode {
4+
int val;
5+
6+
TreeNode left;
7+
8+
TreeNode right;
9+
10+
TreeNode(int x) {
11+
val = x;
12+
}
13+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package lcci0405_legal_binary_search_tree;
2+
3+
/**
4+
* 中序遍历。
5+
*
6+
* 时间复杂度和空间复杂度均是O(n),其中n为树中的节点个数。
7+
*
8+
* 执行用时:0ms,击败100.00%。消耗内存:39.4MB,击败100.00%。
9+
*/
10+
public class Solution {
11+
private Integer pre;
12+
13+
private boolean result = true;
14+
15+
public boolean isValidBST(TreeNode root) {
16+
inOrderTraversal(root);
17+
return result;
18+
}
19+
20+
private void inOrderTraversal(TreeNode treeNode) {
21+
if (null == treeNode || !result) {
22+
return;
23+
}
24+
inOrderTraversal(treeNode.left);
25+
if (pre != null && treeNode.val <= pre) {
26+
result = false;
27+
return;
28+
}
29+
pre = treeNode.val;
30+
inOrderTraversal(treeNode.right);
31+
}
32+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package lcci0405_legal_binary_search_tree;
2+
3+
public class TreeNode {
4+
int val;
5+
6+
TreeNode left;
7+
8+
TreeNode right;
9+
10+
TreeNode(int x) {
11+
val = x;
12+
}
13+
}

lcci0406_successor/Solution.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package lcci0406_successor;
2+
3+
/**
4+
* 中序遍历。
5+
*
6+
* 时间复杂度和空间复杂度均是O(n),其中n为树中的节点个数。
7+
*
8+
* 执行用时:3ms,击败100.00%。消耗内存:40.2MB,击败100.00%。
9+
*/
10+
public class Solution {
11+
private TreeNode pre, result;
12+
13+
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
14+
inOrderTraversal(root, p);
15+
return result;
16+
}
17+
18+
private void inOrderTraversal(TreeNode treeNode, TreeNode p) {
19+
if (null == treeNode || null != result) {
20+
return;
21+
}
22+
inOrderTraversal(treeNode.left, p);
23+
if (pre == p) {
24+
result = treeNode;
25+
}
26+
pre = treeNode;
27+
inOrderTraversal(treeNode.right, p);
28+
}
29+
}

lcci0406_successor/TreeNode.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package lcci0406_successor;
2+
3+
public class TreeNode {
4+
int val;
5+
6+
TreeNode left;
7+
8+
TreeNode right;
9+
10+
TreeNode(int x) {
11+
val = x;
12+
}
13+
}

0 commit comments

Comments
 (0)