public ListNode DeleteDuplicates(ListNode head) { if (head == null) { return null; } if (head.next == null) { return head; } var tmp = head; while (tmp != null) { if (tmp.next != null) { if (tmp.val == tmp.next.val) { tmp.next = tmp.next.next; } else { tmp = tmp.next; } } else { tmp = tmp.next; } } return head; }
public ListNode GetIntersectionNode(ListNode headA, ListNode headB) { int lenA = 0; int lenB = 0; var tmpA = headA; var tmpB = headB; while (tmpA != null) { lenA++; tmpA = tmpA.next; } while (tmpB != null) { lenB++; tmpB = tmpB.next; } tmpA = headA; tmpB = headB; while (lenA > lenB ) { lenA--; tmpA = tmpA.next; } while (lenA < lenB) { lenB--; tmpB = tmpB.next; } while (tmpA != null) { if (tmpA == tmpB) { return tmpA; } tmpA = tmpA.next; tmpB = tmpB.next; } return null; }