两个链表的第一个公共节点
设置两个指针,一个从headA开始遍历,遍历完headA再遍历headB,另一个从headB开始遍历,遍历完headB再遍历headA,如果有交点,两个指针会同时遍历到交点处。
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
if(pHead1==null || pHead2==null)
return null;
ListNode p1 = pHead1;
ListNode p2 = pHead2;
while(p1 != p2){
if(p1 != null)
p1 = p1.next;
else
p1 = pHead2;
if(p2 != null)
p2 = p2.next;
else
p2 = pHead1;
}
return p1;
}
}
统计一个数字在排序数组中出现的次数
排序数组:二分法
public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array.length == 0)
return 0;
int i = 0;
int j = array.length-1;
while(i<j && array[i] != array[j]){
if(array[i]<k)
i++;
if(array[j]>k)
j--;
}
if(array[i] != k)
return 0;
return j-i+1;
}
}