链表的两个节点向等问题?

链表的两个节点相等是,表示地址相等,还是链表中的val相等?

//链表相交问题;
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    struct ListNode *p1,*p2,*temp;
    int a,b, time;
    p1=headA ,p2=headB;
     a=max_length(headA);
     b=max_length(headB);
     temp=NULL;
//保证同一起点;
     if(a>b)
     {
           time=a-b;
           while(time--)
           p1=p1->next;
     }
     else
     {
           time=b-a;
           while(time--)
           p2=p2->next;
     }
     //找到相同的位置;
     while(p1&&p2)
     {
           if(p1==p2)
           {
               temp=p1;
               break; 
           }
           p1=p1->next;
           p2=p2->next;
     }
     return temp;
}
int max_length(struct ListNode *head){  //分别计算链表的长度;
    int a=0;
    while(head)
    {
         a++;
         head=head->next;
    }
    return a;
}

//这里面的p1==p2,表示的是p1与p2所指向的地值相等吗?;

阅读 1.9k
1 个回答
struct ListNode *p1,*p2,*temp;

这边的定义已经很清楚了,是地址相同。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进