File tree 5 files changed +167
-0
lines changed
5 files changed +167
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ * @lc app=leetcode.cn id=104 lang=java
3
+ *
4
+ * [104] 二叉树的最大深度
5
+ */
6
+
7
+ // @lc code=start
8
+ /**
9
+ * Definition for a binary tree node.
10
+ * public class TreeNode {
11
+ * int val;
12
+ * TreeNode left;
13
+ * TreeNode right;
14
+ * TreeNode() {}
15
+ * TreeNode(int val) { this.val = val; }
16
+ * TreeNode(int val, TreeNode left, TreeNode right) {
17
+ * this.val = val;
18
+ * this.left = left;
19
+ * this.right = right;
20
+ * }
21
+ * }
22
+ */
23
+ class Solution {
24
+ public int maxDepth (TreeNode root ) {
25
+ if (root == null ) {
26
+ return 0 ;
27
+ }
28
+ return 1 + Math .max (maxDepth (root .left ), maxDepth (root .right ));
29
+ }
30
+ }
31
+ // @lc code=end
Original file line number Diff line number Diff line change
1
+ import java .util .ArrayList ;
2
+ import java .util .List ;
3
+
4
+ /*
5
+ * @lc app=leetcode.cn id=144 lang=java
6
+ *
7
+ * [144] 二叉树的前序遍历
8
+ */
9
+
10
+ // @lc code=start
11
+ /**
12
+ * Definition for a binary tree node.
13
+ * public class TreeNode {
14
+ * int val;
15
+ * TreeNode left;
16
+ * TreeNode right;
17
+ * TreeNode() {}
18
+ * TreeNode(int val) { this.val = val; }
19
+ * TreeNode(int val, TreeNode left, TreeNode right) {
20
+ * this.val = val;
21
+ * this.left = left;
22
+ * this.right = right;
23
+ * }
24
+ * }
25
+ */
26
+ class Solution {
27
+ public List <Integer > preorderTraversal (TreeNode root ) {
28
+ List <Integer > list = new ArrayList <Integer >();
29
+ if (root == null ) {
30
+ return list ;
31
+ }
32
+
33
+ list .add (root .val );
34
+ list .addAll (preorderTraversal (root .left ));
35
+ list .addAll (preorderTraversal (root .right ));
36
+ return list ;
37
+ }
38
+ }
39
+ // @lc code=end
Original file line number Diff line number Diff line change
1
+ /*
2
+ * @lc app=leetcode.cn id=226 lang=java
3
+ *
4
+ * [226] 翻转二叉树
5
+ */
6
+
7
+ // @lc code=start
8
+ /**
9
+ * Definition for a binary tree node.
10
+ * public class TreeNode {
11
+ * int val;
12
+ * TreeNode left;
13
+ * TreeNode right;
14
+ * TreeNode() {}
15
+ * TreeNode(int val) { this.val = val; }
16
+ * TreeNode(int val, TreeNode left, TreeNode right) {
17
+ * this.val = val;
18
+ * this.left = left;
19
+ * this.right = right;
20
+ * }
21
+ * }
22
+ */
23
+ class Solution {
24
+ public TreeNode invertTree (TreeNode root ) {
25
+ if (root == null )
26
+ return null ;
27
+ TreeNode tmp = root .left ;
28
+ root .left = root .right ;
29
+ root .right = tmp ;
30
+ invertTree (root .left );
31
+ invertTree (root .right );
32
+ return root ;
33
+ }
34
+ }
35
+ // @lc code=end
Original file line number Diff line number Diff line change
1
+ /*
2
+ * @lc app=leetcode.cn id=543 lang=java
3
+ *
4
+ * [543] 二叉树的直径
5
+ */
6
+
7
+ // @lc code=start
8
+ /**
9
+ * Definition for a binary tree node.
10
+ * public class TreeNode {
11
+ * int val;
12
+ * TreeNode left;
13
+ * TreeNode right;
14
+ * TreeNode() {}
15
+ * TreeNode(int val) { this.val = val; }
16
+ * TreeNode(int val, TreeNode left, TreeNode right) {
17
+ * this.val = val;
18
+ * this.left = left;
19
+ * this.right = right;
20
+ * }
21
+ * }
22
+ */
23
+ class Solution {
24
+ private int maxDiameter = 0 ;
25
+
26
+ public int diameterOfBinaryTree (TreeNode root ) {
27
+ traverse (root );
28
+ return maxDiameter ;
29
+ }
30
+
31
+ private int traverse (TreeNode root ) {
32
+ if (root == null ) {
33
+ return 0 ;
34
+ }
35
+ // 计算左右子树高度
36
+ int left = traverse (root .left );
37
+ int right = traverse (root .right );
38
+ // 更新最大直径
39
+ maxDiameter = Math .max (left + right , maxDiameter );
40
+
41
+ return 1 + Math .max (left , right );
42
+ }
43
+ }
44
+ // @lc code=end
Original file line number Diff line number Diff line change
1
+ public class TreeNode {
2
+ int val ;
3
+ TreeNode left ;
4
+ TreeNode right ;
5
+
6
+ TreeNode () {
7
+ }
8
+
9
+ TreeNode (int val ) {
10
+ this .val = val ;
11
+ }
12
+
13
+ TreeNode (int val , TreeNode left , TreeNode right ) {
14
+ this .val = val ;
15
+ this .left = left ;
16
+ this .right = right ;
17
+ }
18
+ }
You can’t perform that action at this time.
0 commit comments