posted 16 years ago
Sorry for posting here, badly I need help from expert like you!
Can any one explain why my codes does not runs?
public static IntNode difference(IntNode head1, IntNode head2)
{
if(head1==null && head2==null) return null;
if(head1==null) return null;
if(head2==null) return head1;
if(head1.data==head2.data){
IntNode special = difference(head1.next, head2.next);
return special;
}
if(head1.data!=head2.data){
IntNode special = difference(head1.next, head2);
head1.next=special;
}
if (head1.data < head2.data){
IntNode special =difference(head1, head2.next);
return special;
}
return head1;
}
lets say: head1 lis: 3 -> 6 -> 9 -> 10
head2 list is: 5-> 6-> 10
Answer should be: 3->9, can any one correct me!
public static IntNode mergeUnique(IntNode head1, IntNode head2)
{
if(head1==null && head2==null) return null;
if(head1==null) return head2;
if(head2==null) return head1;
if(head1.data==head2.data){
IntNode special = difference(head1.next, head2.next);
return special;
}
if(head1.data!=head2.data){
IntNode special = difference(head1.next, head2);
head1.next=special;
}
if (head1.data < head2.data){
IntNode special=mergeUnique(head1.next, head2);
head1.next=special;
return head1;
}
if (head2.data < head1.data){
IntNode special=mergeUnique(head1, head2.next);
head2.next=special;
return head2;
}
return head1;
}
lets say: head1 lis: 3 -> 6 -> 9 -> 10
head2 list is: 5-> 6-> 10
Answer should be: 3,5,6,9,10, can any one correct me!
Note that IntNode class contain:
public class IntNode
{
public int data;
public IntNode next;
public IntNode()
{
data = 0;
next = null;
}
public IntNode(int data)
{
this.data = data;
next = null;
}
public IntNode(int data, IntNode next)
{
this.data = data;
this.next = next;
}
}