本周出去旅游,简单学习下。。。
Algorithm
移除重复节点
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeDuplicateNodes(ListNode head) {
if (head == null || head.next == null) {
return head;
}
HashSet<Integer> set = new HashSet();
ListNode pre = head;
ListNode cur = head.next;
set.add(head.val);
while (cur != null) {
if (set.contains(cur.val)) {
pre.next = cur.next;
} else {
set.add(cur.val);
pre = cur;
}
cur = cur.next;
}
return head;
}
public ListNode removeDuplicateNodes2(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode cur = head;
ListNode pre = null;
ListNode next = null;
while (cur != null) {
pre = cur;
next = cur.next;
while (next != null) {
if (cur.val == next.val) {
pre.next = next.next;
} else {
pre = next;
}
next = next.next;
}
cur = cur.next;
}
return head;
}
}
Review
Exploring the Power of Kotlin Contracts for Better Code Quality
Tip
Share
本周学习了下 Channel 和 Select