思路提示
- 两单链表相交后的形状:Y;
- 怎样倒着往前找:栈,用两个栈。
先入栈,再出栈,判断栈顶元素是否相等,出栈直至两个节点不相同时,则这个节点的后一个节点是第一个相交节点。
node temp=NULL; //存第一个相交节点
while(!stack1.empty()&&!stack1.empty()) //两栈不为空
{
temp=stack1.top();
stack1.pop();
stack2.pop();
if(stack1.top()!=stack2.top())
{
break;
}
}
- 时间复杂度:暴力求解(遍历两个链表)
O
(
n
2
)
O(n^2)
O(n2)
使用栈的时间复杂度 O ( 2 n ) O(2n) O(2n)