列印兩個有序連結清單的公共部分
- head1<head2 head1向前移動
- head1>head2 head2向前移動
- head1 = head2 添加head1到結果集 head1和head2 都向前移動
public void printCommonpart(ListNode list1,ListNode list2)
{
while(list1!=null&&list2!=null){
if(list1.val<list2.val)
{
list1 =list1.next;
}
else if(list1.val>list2.val)
{
list2 = list2.next;
}
else{
System.out.println(list1.val);
list1 = list1.next;
list2 = list2.next;
}
}
}
删除單連結清單中的第K個節點
public ListNode removeLastKthNode(ListNode list,int k) {
ListNode tmp = list;
ListNode head = new ListNode();
ListNode res = head;
head.next = list;
while(k>0)
{
tmp = tmp.next;
k--;
}
while(tmp!=null)
{
tmp = tmp.next;
list = list.next;
head = head.next;
}
//if(head.next==res) 如果res是list的話要做這一步的判斷
//[1,2,3,4,5]
//5
// 可能删除的就是res本身
// return res.next;
head.next = head.next.next;
return res.next;
//如果是res 是head 的話那麼就可以直接傳回res.next了
}