首页 > 其他分享 >链表链表相交

链表链表相交

时间:2023-02-25 10:33:59浏览次数:47  
标签:node ListNode 相交 next 链表 headB headA

leetcode:链表相交

Method

判断链表相交否,先看两个链表的长度,使得长链表移动长度之差绝对值的长度,移动后的两个新链表长度一样,在判断两个节点是否地址相同

代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* MovementNode(ListNode* node, int n){
        while(n--){
            node = node->next;
        }
        return node;
    }
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        int lenA = 0;
        int lenB = 0;
        ListNode* node = headA;
        while (node) {
            lenA++;
            node = node->next;
        }
        node = headB;
        while (node) {
            lenB++;
            node = node->next;
        }
        if (lenA > lenB) {//移动A
           headA = MovementNode(headA, lenA - lenB);
        } else{
            headB = MovementNode(headB,lenB - lenA);
        }
        bool is = false;//判断师傅相同
        while (headA && headB) {
            if (headA == headB) {
                is = 1;
                break;
            }
            headA = headA->next;
            headB = headB->next;
        }
        return is ? headA : nullptr;
    }
};


















标签:node,ListNode,相交,next,链表,headB,headA
From: https://www.cnblogs.com/tsqo/p/17153895.html

相关文章

  • 链表:删除倒数第N个节点
    思路这道题如果是暴力,其实可以先反转,在删除,在反转,麻烦Method双指针:思路:建立一个头节点node,然后fast和slow指针都指向node,然后fast先跑n+1距离,fast先走,就会与slow......
  • Redis设计与实现—简单动态字符串、链表、字典
    前言《Redis设计与实现》数据结构部分有关字符串类型介绍。@目录前言一、数据结构——简单动态字符串1.1SDS定义1.2SDS与C字符串的区别1.2.1常数复杂度获取字符串长度......
  • 离线数仓中的拉链表
    拉链表什么是拉链表?​拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效的开始日期。(就是在原来表的基础上,......
  • #yyds干货盘点# LeetCode面试题:K 个一组翻转链表
    1.简述:给你链表的头节点head,每 k 个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩......
  • 【链表】链表变化时其中的节点变化情况
    这个点之前一直很混淆,今天碰巧看了个题,记录一下。对于node*p=a;此时p与a的地址一样,那么p发生变化时a是不是也变化了呢?发现有两种不一样的情况:如果p=p->next;此时p......
  • 删除链表重复的元素
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*deleteDuplicates(str......
  • 链表练习——两数求和
    先看题目:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式......
  • 算法刷题 Day 53 | ● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序
    1143.最长公共子序列体会一下本题和718.最长重复子数组的区别视频讲解:https://www.bilibili.com/video/BV1ye4y1L7CQhttps://programmercarl.com/1143.%E6%9C%8......
  • 学数据结构第一个是学链表?不,是它
    大家好,我是五月。前言以前很多小白都来询问过关于数据结构的内容,问题基本都是想学链表,堆栈、队列、树这些该怎么下手。 一方面我表示赞许,另一方面又觉得他们对数......
  • 链表巧用
    题目类型总结最近在阅读《算法竞赛进阶指南》这本书的链表这一节时,学会了链表在一类特定问题中的巧妙用法,遂有此文,也算是自己的一个学习笔记。考虑这样一类问题,一个长度......