141.环形链表
这题不会,第一次用快慢指针

public class Solution {
public boolean hasCycle(ListNode head) {
ListNode fast=new ListNode(),slow=new ListNode();
fast=head;
slow=head;
if(head==null)
return false;
while(fast.next!=null&&slow.next!=null){
fast=fast.next;
if(fast.next!=null)
fast=fast.next;
if(fast==slow)
return true;
slow=slow.next;
}
return false;
}
}
21.合并两个有序链表
这题是当时学长的考核,双指针,确实也不是太难。
class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode res=new ListNode();
ListNode p1=list1;
ListNode p2=list2;
ListNode p=res;
while(p1!=null&&p2!=null)
{
if(p1.val<=p2.val)
{
p.next=p1;
p=p.next;
p1=p1.next;
}else
{
p.next=p2;
p=p.next;
p2=p2.next;
}
}
if(p1==null)p.next=p2;
if(p2==null)p.next=p1;
return res.next;
}
}