Skip to content

Commit 56d9ead

Browse files
committed
提交234,617,101题
1 parent 4a655d2 commit 56d9ead

File tree

4 files changed

+140
-0
lines changed

4 files changed

+140
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.mistray.link;
2+
3+
import java.util.ArrayList;
4+
5+
/**
6+
* @author ZJY(MistRay)
7+
* @Project algorithm-study
8+
* @Package com.mistray.link
9+
* @create 2020年03月04日 15:02
10+
* @Desc
11+
*/
12+
public class PalindromeLinkedList234 {
13+
14+
15+
public static void main(String[] args) {
16+
System.out.println(2%2);
17+
}
18+
19+
// 双指针法
20+
public boolean isPalindrome(ListNode head) {
21+
if (head == null || head.next == null){
22+
return true;
23+
}
24+
ArrayList<ListNode> list = new ArrayList<>();
25+
ListNode fast = head;
26+
ListNode slow = head;
27+
int count = 1;
28+
while (fast != null && fast.next != null) {
29+
list.add(slow);
30+
slow = slow.next;
31+
fast = fast.next.next;
32+
if (fast != null) {
33+
count = count + 2;
34+
} else {
35+
count++;
36+
}
37+
}
38+
ListNode tmp;
39+
if (count % 2 == 0) {
40+
tmp = slow;
41+
} else {
42+
tmp = slow.next.next;
43+
}
44+
for (int i = list.size() - 1; i > -1; i--) {
45+
if (tmp.val != list.get(i).val) {
46+
return false;
47+
}
48+
tmp = tmp.next;
49+
}
50+
return true;
51+
}
52+
53+
// 复制数组双指针法
54+
public boolean isPalindrome2(ListNode head) {
55+
ArrayList<ListNode> list = new ArrayList<>();
56+
while (head != null) {
57+
list.add(head);
58+
head = head.next;
59+
}
60+
for (int i = 0, f = list.size() - 1; i < list.size() / 2; i++, f--) {
61+
if (list.get(i).val != list.get(f).val) {
62+
return false;
63+
}
64+
}
65+
return true;
66+
}
67+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.mistray.tree;
2+
3+
/**
4+
* @author ZJY(MistRay)
5+
* @Project algorithm-study
6+
* @Package com.mistray.tree
7+
* @create 2020年03月04日 9:59
8+
* @Desc
9+
*/
10+
public class MergeTwoBinaryTrees617 {
11+
12+
public static void main(String[] args) {
13+
14+
}
15+
16+
public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
17+
if (t1 == null && t2 == null) {
18+
return null;
19+
} else if (t1 == null) {
20+
return t2;
21+
} else if (t2 == null) {
22+
return t1;
23+
} else {
24+
t1.val = t1.val + t2.val;
25+
t1.left = mergeTrees(t1.left, t2.left);
26+
t1.right = mergeTrees(t1.right, t2.right);
27+
return t1;
28+
}
29+
}
30+
}
31+
32+
33+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.mistray.tree;
2+
3+
/**
4+
* @author ZJY(MistRay)
5+
* @Project algorithm-study
6+
* @Package com.mistray.tree
7+
* @create 2020年03月04日 13:31
8+
* @Desc
9+
*/
10+
public class SymmetricTree101 {
11+
12+
public static void main(String[] args) {
13+
14+
}
15+
16+
public boolean isSymmetric(TreeNode root) {
17+
return helper(root,root);
18+
}
19+
20+
public boolean helper(TreeNode t1, TreeNode t2) {
21+
if ((t2 != null && t1 != null) && t1.val == t2.val) {
22+
return helper(t1.right, t2.left) && helper(t1.left, t2.right);
23+
} else if (t1 == null && t2 == null) {
24+
return true;
25+
} else {
26+
return false;
27+
}
28+
}
29+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.mistray.tree;
2+
3+
public class TreeNode {
4+
int val;
5+
TreeNode left;
6+
TreeNode right;
7+
8+
TreeNode(int x) {
9+
val = x;
10+
}
11+
}

0 commit comments

Comments
 (0)