思路就是两个指针,分别指向两个链表的head.next
谁小谁往后移动,两个相等就打印输出,然后同时向后移动即可。
在加入节点的时候要做到链表有序,才可以进行比较。
public void addByOrder(Node node) {//按照顺序插入一个节点
Node temp = head;
while(temp.next!=null && temp.next.no<node.no) {
temp = temp.next;
}
if(temp.next == null) {
temp.next = node;
}
else {
if(temp.next.no<node.no) {
temp.next = node;
}
else if(temp.next.no>=node.no) {
node.next = temp.next;
temp.next = node;
}
}
}
排好序再进行相同的节点打印。
public static void printSame(SingleLinkList list1,SingleLinkList list2) {
Node temp1 = list1.head.next;
Node temp2 = list2.head.next;
while(temp1!=null && temp2!=null) {
if(temp1.no == temp2.no) {
System.out.println(temp1);
temp2 = temp2.next;
temp1 = temp1.next;
}
else if(temp1.no > temp2.no) {
temp2 = temp2.next;
}
else if(temp1.no < temp2.no ) {
temp1 = temp1.next;
}
}
}