返回交点结点的地址;
#include#include using namespace std; struct ElemSN { int data; ElemSN *next; }; ElemSN* TwoLink(ElemSN* h1,ElemSN* h2){ stack sta1,sta2; ElemSN *p1=h1,*p2=h2,*result; while((sta1.push(p1),p1)){ p1=p1->next;//把h1所指向的链表压入栈sta1中,NULL也要压入 } while((sta2.push(p2),p2)){ p2=p2->next;//把h2所指向的链表压入栈sta2中,NULL也要压入 } //NULL压入栈是为了处理两个平行链表(即没有交点的两个链表),这样可以使无论怎样的两个链表都有相同的结点(即NULL) while(!sta1.empty()&&!sta2.empty()&&sta1.top()==sta2.top()){//两个栈中栈顶元素相同则循环,不同则结束循环 result=sta1.top();//每次保存当前两个栈的相同的栈顶元素 sta1.pop();//sta1出栈 sta2.pop();//sta2出栈 } return result; }



