代码随想录 链表 test 6

面试题 02.07. 链表相交 - 力扣(LeetCode)

        如果两个链表相交,则它们从交点开始到结束共用结点,因此如果两个链表长度不一样,且存在差值len,那么这个差值一定是在交点前产生的,因此如果让指向表长的指针先移动len,再同步移动,如果有交点就会同时到达。

/**
 * 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) {
        ListNode* cura = headA;
        ListNode* curb = headB;
        int sizea = 0, sizeb = 0;
        while(cura){
            sizea++;
            cura = cura->next;
        }
        while(curb){
            sizeb++;
            curb = curb->next;
        }
        cura = headA;
        curb = headB;
        if (sizeb > sizea) {//找到较长的链表,将cura指向较长链表
            swap (sizea, sizeb);
            swap (cura, curb);
        }
        int len = sizea - sizeb;
        while(len--){
            cura = cura->next;
        }
        while(cura){
            if(cura == curb){
                return cura;
            }
            cura = cura->next;
            curb = curb->next;
        }
        return NULL;
    }
};

### 代码随想录简介 代码随想录是一个专注于算法学习和刷题技巧分享的平台,主要面向准备技术面试的学生和技术从业者。该网站提供了丰富的算法题目分类、解题思路以及详细的代码实现[^3]。 #### 访问方式 可以通过以下链接访问代码随想录官方网站: [https://www.programmercarl.com/](https://www.programmercarl.com/) 此网站涵盖了多种数据结构与算法主题,包括但不限于数组、链表、哈希表、字符串、二叉树、回溯算法、贪心算法以及动态规划等内容。 #### 主要特点 - **系统化学习路径**:提供从基础到高级的学习路线图,帮助用户逐步掌握各类算法知识点。 - **经典题目解析**:针对LeetCode上的热门题目进行深入分析,并附带清晰易懂的代码示例[^2]。 - **专项练习模块**:例如回溯专题中的组合问题、分割问题等,均配有详尽讲解[^1]。 以下是部分核心板块概述: #### 数据结构与算法分类 | 类别 | 描述 | |------------|----------------------------------------------------------------------| | 数组 | 包含双指针法、滑动窗口等问题解决方法 | | 链表 | 提供常见操作如反转链表、删除节点等功能详解 | | 字符串 | KMP算法等相关内容待补充 | | 栈与队列 | 深入探讨其应用场景 | | 二叉树 | 细分为遍历、属性计算等多个子方向 | | 动态规划 | 覆盖背包问题、股票买卖等多种复杂场景 | ```python # 示例代码展示如何通过Python请求网页内容(仅作演示用途) import requests url = "https://www.programmercarl.com/" response = requests.get(url) if response.status_code == 200: print("成功访问代码随想录官网") else: print(f"无法访问,状态码:{response.status_code}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值