坚持到底就是胜利

用心去做好这件事情

统计

留言簿(1)

阅读排行榜

评论排行榜

dream come true

两个链表是否相交,如果相交,找出第一个开始相交的节点

node  * list(node  * list1,node  * list2)
{
 
if (list1  ==   null   ||  list2  ==   null )
   
return   null ;
 
int  len1  =   0 ,len2  =   0 ;
 node 
* =  list1, * =  list2;
 
while (p -> next  !=   null )
   
{
        len1 
++ ;
        p 
=   -> next;
        }

  
while (q -> next  !=   null )
  
{
      len2 
++ ;
      q 
=  q -> next;
    }

  
if (p  !=  q)
    
return   null ;
  len1 
++ ;
  len2 
++ ;

  p 
=  list1;q  =  list2;

  
if (len1  >  len2 )
  
{
       
int  diff  =  len1  -  len2;
       p 
=  list1;
       
while (diff  >   0   &&  p !=   null ;)
        
{
         p 
=  p -> next;
         diff 
-- ;
          }

    }

  
else  
 
{
       
int  diff  =  len2  -  len1;
       q 
=  list2;
       
while (diff  >   0   &&  q  !=   null )
        
{diff  -- ; q =  q -> next;}
  }


 
while (p  !=  q)
 
{
   p 
=  p -> next;q =  q -> next;
 }

  
return  p
    
}

posted on 2006-11-20 23:32 ailab 阅读(200) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理