Skip to content

Commit af869f6

Browse files
Merge pull request algorithm001#603 from wahaha2019/master
week3作业-学号063
2 parents f04889f + 7750d0e commit af869f6

2 files changed

Lines changed: 101 additions & 0 deletions

File tree

Week_03/id_63/LeetCode_104_63.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
3+
104. 二叉树的最大深度
4+
给定一个二叉树,找出其最大深度。
5+
6+
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
7+
8+
说明: 叶子节点是指没有子节点的节点。
9+
10+
示例:
11+
给定二叉树 [3,9,20,null,null,15,7],
12+
13+
3
14+
/ \
15+
9 20
16+
/ \
17+
15 7
18+
19+
返回它的最大深度 3 。
20+
*/
21+
/*
22+
执行用时 : 1 ms, 在Maximum Depth of Binary Tree的Java提交中击败了90.41% 的用户
23+
内存消耗 : 36.8 MB, 在Maximum Depth of Binary Tree的Java提交中击败了61.00% 的用户
24+
*/
25+
/**
26+
* Definition for a binary tree node.
27+
* public class TreeNode {
28+
* int val;
29+
* TreeNode left;
30+
* TreeNode right;
31+
* TreeNode(int x) { val = x; }
32+
* }
33+
*/
34+
class Solution {
35+
public int maxDepth(TreeNode root) {
36+
if (root == null) {
37+
return 0;
38+
}
39+
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
40+
}
41+
}

Week_03/id_63/LeetCode_429_63.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/
3+
429. N叉树的层序遍历
4+
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
5+
6+
例如,给定一个 3叉树 :
7+
8+
返回其层序遍历:
9+
10+
[
11+
[1],
12+
[3,2,4],
13+
[5,6]
14+
]
15+
说明:
16+
树的深度不会超过 1000。
17+
树的节点总数不会超过 5000。
18+
*/
19+
/*
20+
执行用时 : 3 ms, 在N-ary Tree Level Order Traversal的Java提交中击败了99.33% 的用户
21+
内存消耗 : 56.9 MB, 在N-ary Tree Level Order Traversal的Java提交中击败了52.89% 的用户
22+
*/
23+
/*
24+
// Definition for a Node.
25+
class Node {
26+
public int val;
27+
public List<Node> children;
28+
29+
public Node() {}
30+
31+
public Node(int _val,List<Node> _children) {
32+
val = _val;
33+
children = _children;
34+
}
35+
};
36+
*/
37+
import java.util.List;
38+
import java.util.ArrayList;
39+
class Solution {
40+
public List<List<Integer>> levelOrder(Node root) {
41+
List<List<Integer>> list = new ArrayList<List<Integer>>();
42+
find(list, root, 0);
43+
return list;
44+
}
45+
void find(List<List<Integer>> list, Node root, int level) {
46+
if (root == null) {
47+
return;
48+
}
49+
if (list.size() <= level) {
50+
List<Integer> levelList = new ArrayList<Integer>();
51+
list.add(levelList);
52+
}
53+
List<Integer> levelList = list.get(level);
54+
levelList.add(root.val);
55+
for (int i = 0; i < root.children.size(); i++) {
56+
find(list, root.children.get(i), level + 1);
57+
}
58+
}
59+
60+
}

0 commit comments

Comments
 (0)