首页 > 编程语言 >四种语言刷算法之相交链表

四种语言刷算法之相交链表

时间:2023-04-12 10:15:43浏览次数:57  
标签:ListNode struct next 链表 算法 headB headA return 四种

力扣160. 相交链表

1、C

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
   if(headA==NULL||headB==NULL)return NULL;
   struct ListNode* p = headA;
   struct ListNode* q = headB;
   while(p!=q){
       if(p!=NULL){
           p = p->next;
       }
       else{
           p = headB;
       }
       if(q!=NULL){
           q = q->next;
       }
       else{
           q = headA;
       }
   } 
   return q;
}

2、C++

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        if(!headA||!headB)return NULL;
        ListNode *p = headA;
        ListNode *q = headB;
        while(p!=q){
            if (p) p = p->next;
            else p = headB;
            if(q) q = q->next;
            else q = headA;
        }
        return p;
    }
};

3、JAVA

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if(headA==null||headB==null)return null;
        ListNode p = headA;
        ListNode q = headB;
        while(p!=q){
            if(p!=null) p = p.next;
            else p = headB;
            if(q!=null) q = q.next;
            else q = headA;
        }
        return p;
    }
}

4、Python

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        if headA is None or headB is None:return None
        p = headA
        q = headB
        while p!=q:
            if p is None:
                p = headB
            else:
                p = p.next
            if q is None:
                q = headA
            else:
                q = q.next
        return p

标签:ListNode,struct,next,链表,算法,headB,headA,return,四种
From: https://www.cnblogs.com/cmkbk/p/17298000.html

相关文章

  • 光栅化算法-中点画圆算法
    光栅化算法-中点画圆算法中点画圆算法对圆形光栅化时,只需考虑在极坐标下\(\theta\in[\pi/4,\pi/2]\)的点即可,其他的点可通过对称法绘制。将圆形光栅化的算法类似于Bresenham算法。设当前绘制的点的坐标为\(P_{k}(x_{k},y_{k})\),那么下一个点的坐标为\(P_{k+1}(x_{k+1},y_{......
  • 约瑟夫环问题---&解题方法 静态单链表&一维数组
      importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);intn=input.nextInt();intm=input.nextInt();int[]ant=newint[150];for(int......
  • 复杂网络社区发现算法聚类分析全国电梯故障数据和可视化:诊断电梯“安全之殇”|附代码
    参考原文:http://tecdat.cn/?p=2186最近我们被客户要求撰写关于复杂网络社区发现算法的研究报告,包括一些图形和统计输出。物业工程肩负着维持项目各类设施设备的正常运作,保障全体业主的正常生活,令物业保值升值,是项目的心脏部门。拓端数据(tecdat)研究人员根据全国电梯故障上报汇总......
  • 算法导论-第3章-描述运行时间
    第3章描述运行时间本章研究算法的渐近(asymptotic)效率。我们关心的是,当输入规模足够大时,算法运行时间与随着输入规模的增大发生怎样的变化,即研究\(T(n)\)随着\(n\)的增大发生怎样的变化。3.1\(\Omicron\)符号,\(\Omega\)符号,\(\Theta\)符号\(\Omicron\)符号描述函数的渐近上界......
  • 基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
    1.算法描述1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。最常用的径向......
  • 双线性插值算法及需要注意事项
    最近在编程时用到了双线性插值算法,对图像进行缩放。网上有很多这方面的资料,介绍的也算明白。但是,这些文章只介绍了算法,并没有具体说怎么实现以及怎么实现最好,举个例子,你可以按照网上文章的算法自己写一个双线性插值程序,用它对一张图片进行处理,然后再用matlab或者openCV的resize函数......
  • MATLAB代码:基于粒子群算法的储能优化配置
    MATLAB代码:基于粒子群算法的储能优化配置关键词:储能优化配置粒子群 储能充放电优化主要内容:建立了储能的成本模型,包含运行维护成本以及容量配置成本,然后以该成本函数最小为目标函数,经过粒子群算法求解出其最优运行计划,并通过其运行计划最终确定储能容量配置的大小,求解采用的......
  • MATLAB代码:基于改进粒子群算法的微网多目标优化调度
    MATLAB代码:基于改进粒子群算法的微网多目标优化调度关键词:微网多目标优化调度粒子群算法仿真平台:matlab主要内容:代码提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调度模型。同时采用改进的粒子群算法对优化模型进行求解,具体改进的......
  • 基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
    1.算法描述      1985年,Powell提出了多变量插值的径向基函数(RBF)方法。径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也可以是到任意一点c的距离,c点称为中心点。任意满足上述特性的函数,都可以叫做径向基函数。一般使用欧氏距离计算距离中心点的距离(欧式径向基函数)。......
  • 基于MPPT算法的PV光伏阵列电网模型simulink仿真
    1.算法描述       光伏阵列(PhotovoltaicArray)是多片光伏模组的连接,也是更多光伏电池的连接,光伏阵列是最大规模的光伏发电系统。太阳能电池透过光生伏特效应可以将太阳光能转化成直流电能,但一块光伏模组(光伏板)能够产生的电流不够一般住宅使用,所以将数块光伏模组连接在......