首页 > 其他分享 >JZ52 两个链表的第一个公共节点

JZ52 两个链表的第一个公共节点

时间:2024-04-12 18:44:41浏览次数:26  
标签:ListNode int 节点 链表 pHead1 pHead2 next JZ52

image
image
image

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
#include <endian.h>
class Solution {
public:
	//返回类型为 节点指针类型, 传入的是两个链表的头节点
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
		
		//先得到两个链表的长度,计算它俩的差x,让长的那个先走x步
		//让后一起走,如果都走到最后还没有找到相同的,则这两个链表没有相同的节点
		int length1 = GetLengethOfList(pHead1);
		int length2 = GetLengethOfList(pHead2);
		int x = 0;

		if(length1 < length2)
		{
			x = length2 - length1;
			for(int i = 0; i < x ; i++)
			{
				pHead2 = pHead2->next;
			}
		}
		else {
			x = length1 - length2;
			for(int j = 0; j < x ; j++)
			{
				pHead1 = pHead1->next;
			}
		}

		//两个链表走到相同的节点,或者两个节点都走到头
		while(pHead1 && pHead2 && pHead1 != pHead2)
		{
			pHead1 = pHead1->next;
			pHead2 = pHead2->next;
		}
		return pHead2;
	
    }

	int GetLengethOfList (ListNode* pHead)
	{	
		int i = 0;
		while(pHead)
		{
			i++;
			pHead = pHead->next;
		}
		return i;
	}
};

标签:ListNode,int,节点,链表,pHead1,pHead2,next,JZ52
From: https://www.cnblogs.com/H43724334/p/18131922

相关文章

  • 2-70. 核心功能评估周围节点得到最短路径
    修改AStar项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240412_1338......
  • 2-69. 根据每个地图信息生成节点信息
    创建AStar脚本修改GridMapManager修改AStar脚本再写BuildPath方法再写FindShortestPath方法项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240412_1305......
  • BM2 链表内指定区间反转
    代码有点长,但是我比较喜欢这种做法。注意的点是如果第一个参与了反转,那么返回的就是区间反转之后的头结点,而不是原始头结点。importjava.util.*;/**publicclassListNode{*intval;*ListNodenext=null;*publicListNode(intval){*this.val=......
  • BM1 反转链表
    开始刷数据结构了。1.递归importjava.util.*;/**publicclassListNode{*intval;*ListNodenext=null;*publicListNode(intval){*this.val=val;*}*}*/publicclassSolution{publicListNodeReverseList(ListNodehea......
  • Flink源码学习(4) TaskManager从节点启动分析
    taskManager是flink的worker节点,负责slot的资源管理和task执行一个taskManager就是一台服务器的抽象TaskManager基本资源单位是slot,一个作业的task会部署在一个TM的slot上运行,TM会负责维护本地的slot资源列表,并与Master和JobManager进行通信启动主类:TaskManagerRunnerTaskMan......
  • 树上交换节点(OPPO23届秋招-后端真题)
    题面核心思想这道题跟树没有任何关系。。。样例的2143直接在数组交换为1234就可以了。那么只要当前下标i与nums[i]不相等我们就交换比如512341!=5交换为->412351!=4交换为->312451!=3交换为->213451!=2交换为->12......
  • JZ25合并两个排序链表
    /***structListNode{* intval;* structListNode*next;* ListNode(intx):val(x),next(nullptr){}*};*/#include<cstddef>classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*......
  • 天梯赛-练习集-L2-002 链表去重(25分)
    L2-002链表去重代码长度限制:16KB时间限制:400ms内存限制:64MB题目描述给定一个带整数键值的链表L,你需要把其中绝对值重复的键值结点删掉。即对每个键值K,只有第一个绝对值等于K的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定L为21→-15→-15......
  • 使用 Prometheus 在 KubeSphere 上监控 KubeEdge 边缘节点(Jetson) CPU、GPU 状态
    作者:朱亚光,之江实验室工程师,云原生/开源爱好者。KubeSphere边缘节点的可观测性在边缘计算场景下,KubeSphere基于KubeEdge实现应用与工作负载在云端与边缘节点的统一分发与管理,解决在海量边、端设备上完成应用交付、运维、管控的需求。根据KubeSphere的支持矩阵,只有1.23......
  • py_trees Sequence节点参数: memory=True | False
    Python行为树py_trees的一种注意情况:memory=True|Falsepy_trees…composites.Sequence(name=“root”,memory=True)官方文档是这样写的Ifconfiguredwithmemoryandachildreturnedwithrunningontheprevioustick,itwillproceeddirectlytotherunn......