参考回答:
从头遍历两个链表。创建两个栈,第一个栈存储第一个链表的节点,第二个栈存储第二个链表的节点。每遍历到一个节点时,就将该节点入栈。两个链表都入栈结束后。则通过top判断栈顶的节点是否相等即可判断两个单链表是否相交。因为我们知道,若两个链表相交,则从第一个相交节点开始,后面的节点都相交。 若两链表相交,则循环出栈,直到遇到两个出栈的节点不相同,则这个节点的后一个节点就是第一个相交的节点。
node temp=NULL; //存第一个相交节点while(!stack1.empty()&&!stack1.empty()) //两栈不为空{temp=stack1.top();stack1.pop();stack2.pop();if(stack1.top()!=stack2.top()){break;}}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)