微软100题第7题(判断俩个链表是否相交)

微软的100道算法面试题(一) 程序员为什么要学数据结构? 在计算机发展的初期,人们使用计算机的主要目的是处理数值计算问题。使用计算机解决具体问题一般需要经过以下几个步骤:首先从具体问题抽象出适当的数学模型,然后设计或选择解此数学模型的算法,接着编写程序并进行调试、测试,直至得到最终的解答。 由于最初涉及的运算对象是简单的整型、实型或布尔型数据,所以程序设计者的主要精力集中于程序设计的技巧上,而无需重视数据结构。随着计算... 阅读详情

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件


————————————————------------------------------------------------------------------------------------------------------------------

1python版

 

'''
Created on 2017-1-17

@author: admin
第7题(链表)
微软亚院之编程判断俩个链表是否相交
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
2.如果需要求出俩个链表相交的第一个节点列?
'''
from _overlapped import NULL
class CrossList:
    def __init__(self):
        self.listA=Node()
        self.listB=Node()
        nodeA=self.listA
        nodeB=self.listB
        for i in range(0,10):
            nodeA.next=Node()
            nodeA=nodeA.next
            if i==9:
                nodeB.next=nodeA
            else:
                nodeB.next=Node()
                nodeB=nodeB.next
    def isCross(self):
        nodeA=self.listA
        nodeB=self.listB
        while nodeA!=NULL:
            while nodeB!=NULL:
                if nodeA==nodeB:
                    return True
                nodeB=nodeB.next
            nodeB=self.listB
            nodeA=nodeA.next
        return False
                
        
class Node:
    def __init__(self):
        self.next=NULL
if __name__ == '__main__':
    cl=CrossList()
    print(cl.isCross())

 

2java版

http://blog.youkuaiyun.com/hxpjava1/article/details/22210535

 

 

 

3scala版

 

package ms
/**
 * 第7题(链表) 
微软亚院之编程判断俩个链表是否相交 
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 
为了简化问题,我们假设俩个链表均不带环。 
问题扩展: 
1.如果链表可能有环列? 
2.如果需要求出俩个链表相交的第一个节点列?
 */
class CrossList{
  var listA:Node=Node()
  var listB:Node=Node()
  def init(){
    var tmpA=listA;
    var tmpB=listB
    for(i <-0 until 10){
      tmpA.next=Node()
      tmpA=tmpA.next
      if(i==9){
        tmpB.next=tmpA
      }else{
        tmpB.next=Node()
        tmpB=tmpB.next
      }
    }
  }
  
  def isCross():Boolean={
    var tmpA=listA;
    var tmpB=listB;
    while(tmpA!=null){
      while(tmpB!=null){
        if(tmpA==tmpB){
          return  true;
        }
        tmpB=tmpB.next
      }
      tmpB=listB
      tmpA=tmpA.next
    }
    return false;
  }
}

case class Node(var next:Node=null)

object MicroSoft007 {
  
  def main(args: Array[String]): Unit = {
    var list=new CrossList()
    list.init()
    println(list.isCross())
  }
}

 

c语言版本

 

 

/*
 * microsoft007.c
 *
 *  Created on: 2017年1月26日
 *      Author: admin
 第7题(链表)
微软亚院之编程判断俩个链表是否相交
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
2.如果需要求出俩个链表相交的第一个节点列?
 */
#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0

typedef int bool;

typedef struct LinkNode{
	int val;
	struct LinkNode * next;
}node;

void initLinkedList(int  lnk1,int  lnk2);
bool isCrosss();
static node * makeNode(int value);

node * plnk1;
node * plnk2;

int main007(){
	initLinkedList(10,10);
	bool res= isCrosss();
	if(res==true){
		printf("相交\n");
	}else{
		printf("不相交\n");
	}
	return 0;
}

void initLinkedList(int  lnk1,int  lnk2){
	node * tmp;
	for(int i=1;i<=lnk1;i++){
		if(i==1){
			plnk1=makeNode(1);
			tmp=plnk1;
		}else{
			tmp->next=makeNode(1);
			tmp=tmp->next;
		}

	}

	tmp=NULL;
	for(int i=1;i<=lnk2;i++){
		if(i==1){
			plnk2=makeNode(1);
			tmp=plnk2;
		}else{
			tmp->next=makeNode(1);
			tmp=tmp->next;
		}

	}

	tmp->next=plnk1;
}

node * makeNode(int value){
	node* p=malloc(sizeof(node));
	p->val=value;
	p->next=NULL;
	return p;
}
bool isCrosss(){
	node * tmp1=plnk1;
	node * tmp2=plnk2;
	while(tmp1!=NULL){
		bool cross=false;
		while(tmp2!=NULL){
			if(tmp1==tmp2){
				cross=true;
				break;
			}
			tmp2=tmp2->next;
		}
		if(cross){
			return true;
		}
		tmp1=tmp1->next;
	}
	return false;
}


c++版本

 

/*
 * microsoft007.cpp
 *
 *  Created on: 2017年2月6日
 *      Author: admin
 第7题(链表)
微软亚院之编程判断俩个链表是否相交
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
2.如果需要求出俩个链表相交的第一个节点列?
 */
#include "iostream"
using namespace std;

class CrossLinkNode{
public:
	CrossLinkNode(int value,CrossLinkNode*next=NULL){
		this->value=value;
		this->next=next;
	}
public:
	CrossLinkNode*& getNext()  {
		return next;
	}

	void setNext( CrossLinkNode* next) {
		this->next = next;
	}

	int getValue() {
		return value;
	}

	void setValue(int value) {
		this->value = value;
	}

private:
	int value;
	CrossLinkNode * next;
};

class CrossLink{
public:
	CrossLink(){
		linkA=new CrossLinkNode(0);
		CrossLinkNode*tmp=linkA;
		for(int i=1;i<10;i++){
			tmp->setNext(new CrossLinkNode(i));
			tmp=tmp->getNext();
		}
		linkB=new CrossLinkNode(0);
		tmp=linkB;
		for(int i=1;i<10;i++){
			tmp->setNext(new CrossLinkNode(i));
			tmp=tmp->getNext();
		}
		tmp->setNext(linkA);
	}
public:
	bool isCross(){
		CrossLinkNode*tmp=linkA;
		while(tmp!=NULL){
			CrossLinkNode*tmpB=linkB;
			while(tmpB!=NULL){
				if(tmp==tmpB){
					return true;
				}
				tmpB=tmpB->getNext();
			}
			tmp=tmp->getNext();
		}
		return false;
	}
private:
	CrossLinkNode * linkA;
	CrossLinkNode * linkB;
};

int main(){
	CrossLink link;
	cout<<(link.isCross()?"相交":"不相交")<<endl;
	return 0;
}



 

 

 

 

下载igv报错:Error loading genome hg38raw.githubusercontent.com...如何解决? 🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。 阅读详情

相关推荐

5G协议栈逆向工程:基于开源模拟器的核心网信令分析实战

本文详细介绍了基于开源模拟器Free5GC和UERANSIM的5G协议栈逆向工程实战,涵盖核心网信令分析、环境搭建、认证协议解析及安全漏洞验证。通过NGAP/NAS信令交互解密和异常流量注入测试,帮助研究人员深入理解5G网络安全机制,并提供实用的安全加固建议。

weixin_29250573的博客 678

笔试题 -- 链表问题

笔试题 -- 链表问题 1 判断俩个链表是否相交    给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。    问题扩展:   1.如果链表可能有环列?   2.如果需要求出俩个链表相交的第一个节点列? 两个链表相交 :                             一种方法是把

best1196的专栏 770

样本不均衡时AUC反而下降?用imbalanced-learn库实战解决分类陷阱

本文探讨了样本不均衡时AUC指标下降的现象,并通过imbalanced-learn库实战演示了如何解决这一分类陷阱。文章详细分析了不同采样技术(如SMOTE、ADASYN)对模型性能的影响,并提供了XGBoost和逻辑回归模型的优化建议,帮助数据科学家在实际项目中做出更明智的决策。

weixin_29174013的博客 345

算法100题(第7题)

题目: 判断两个单链表是否相交 给出两个单链表的头指针,比如h1,h2,判断这两个链表是否相交。 为了简化问题,假设两个链表均不带环 问题扩展: 1.如果链表可能有环列。 2.如果需要求出两个链表相交的第一个节点列? struct Node{ int data;     Node* next; }; //if there is no cycle int isJoinedSi

雪儿的专栏 450

华大HC32F460 TCP Server实验

华大HC32F460 TCP Server实验

ZhuoWuKeJi的博客 1273

电压电流双闭环PFC单相PWM整流

电压电流双闭环PFC单相整流。仿真及代码

xht2403267701的博客 6053

力扣——链表相交(JavaScript)

请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回。给你两个单链表的头节点。

qq_52604211的博客 439

Android 14.0 SystemUI状态栏居中显示时间和修改时间显示样式

在14.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了

安卓兼职framework和app工程师的博客 980

如何判断两个链表是否相交,python实现

# 判断两个链表是否相交 # 方法一,首尾相接法。先首尾相连,再判断是否有环。有环则说明相交 # 首尾相连 def create_annulation(pHead1, pHead2): if not pHead1 or not pHead2 or not pHead1.next or not pHead2.next: return None last = pHead...

吾将上下而求索 2000

orchestrator常见问题汇总

默认的取集群名称的规则为参数决定 ,默认为取主实例 主机名 ,然后按分隔符"."之前的第一段字符为集群别名,这样在集群主库宕机后,新提升的从库的服务器名称为了新的集群名,宕机的主库成为单独的一个集群。1 默认配置文件中设置了匹配规则 ,只有被匹配的主机名才能进行故障恢复,所以该参数需要设置为 "*"3 另外配置文件中还有许多发现,恢复的忽略规则(Ignore) 这些参数也是需要注意的。由于LVS的后端的RS为IP地址,如果直接显示主机名,LVS的接口方法将无法工作。只传入脚本中用到的参数,不要多传入。

DBA之路的博客 829

《Zephyr OS 入门与实战》第15章:LoRaWAN 集成

【代码】《Zephyr OS 入门与实战》第15章:LoRaWAN 集成。

2301_79143213的博客 613

Python程序员面试算法宝典---解题总结: 第1章 链表 1.11 如何判断两个链表(无环)是否交叉

#!/usr/bin/env python # encoding: utf-8 ''' Python程序员面试算法宝典---解题总结: 第1章 链表 1.11 如何判断两个链表(无环)是否交叉 题目: 单链表相交指的是两个链表存在完全重合的部分,如下图所示: head1->1->2->3->4 ->5->6->...

qingyuanluofeng的专栏 308

Power domain 划分该如何下手

假如PD1比PD3更always on的话,我们只需要插入普通buffer即可,因为PD3 on,PD1也肯定是ON,PD1 off,PD3肯定时off,PD1能cover PD3的电源情况,因此使用普通buffer也可,但是处于省电角度,我们还是使用AO buffer;在我们做多power domain时,在切分power domain时,需要谨慎,稍有不慎,就会出现congestion以及timing问题,那问题来了,我们在切分power domain时有什么考究么,今天小编就和大家一起讨论讨论。

芯冰乐 207

算法面试100题——7.微软亚院之编程判断俩个链表是否相交

1、题目:给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。 2、知识点:链表、排序 3、思路:将指向结点的指针排序,排序后判断指针是否相交。排序复杂度为O(NlogN),判断相交的复杂度为O(M+N)。/*用途: **说明: **算法:复制结点指针,排序 *///#define LOCAL #include <cstdio> #in

EverydayIsLife的博客 384

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微软面试100道之7 判断俩个链表是否相交

第7题(链表) 微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。 问题扩展: 1.如果链表可能有环列? 2.如果需要求出俩个链表相交的第一个节点列? 以下是以按没有环来设计: #include using namespace std ; struct Lin

domwin300208的专栏 556

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

第七题(俩个链表是否相交)

第7 题 微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。

537

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

微软100题(7) 判断两链表是否相交

题目: 给出两个单链表的头指针h1 h2,判断两个链表是否相交 思路: 1.如果两个链表都没有环:        如果相交:则尾结点一定一样        如果不相交,尾结点不一样 2.一个有环,一个无环,则一定不相交 3.两个都有环,       如果相交,则环为同一个环       如果不相交,则环不一样 首先需要判断是否有环

liuqing0517的博客 416

【编程题目】编程判断俩个链表是否相交 ☆

第 7 题(链表)微软亚院之编程判断俩个链表是否相交给出俩个单向链表的头指针,比如 h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?   看到这个题目我很困惑。如果链表的结构是下面这个样子 typedef struct ListNode { int m_Value; ...

weixin_34068198的博客 157

微软公司等数据结构+算法面试100题

微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相 注:本文转自July的博客:http://blog.youkuaiyun.com/v_july_v/article/details/6057286,十分感谢!更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.youkuaiyun.com/v_july_v/article/details/68

黄复贵的博客 6598

微软100题

转自july学长博客,自己保存一份以防万一。 1.把二元查找树转变成排序的双向链表(树)  题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。    10   / /   6  14  / / / / 4  8 12 16  转换成双向链表 4=6=8=10=12=14=16。    首先我们定义的二

我从废墟中走来 1795

微软面试100题之第7题

第 7题(链表) 微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 ,h2 ,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。 问题扩展: 1. 如果链表可能有环列 ? 2. 如果需要求出俩个链表相交的第一节点列 ?

DLLPJY的专栏 1097

微软面试100题及答案

从百度文库下载的下载需要积分,贴在这大家随便看就好,不要追究我盗版,哈哈。。。 1.把二元查找树转变成排序的双向链表  题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。    10   / \   6 14  / \ / \ 4  8 12 16  转换成双向链表 4=6=8=10=12=14=16。

zhanghaotian2011的专栏 5128

July大神微软等100题之第7题------判断两个链表相交(包含有无环),链表是否有环题目总结

今天才发现,当年考研的最后一题还有常数上更优的时间复杂度算法。。。 判断两个单链表是否相交: 我写的: 遍历Link1,O(L1) 遍历Link2,O(L2) 将长的链表指针后移|L2-L1|个长度,然后两个指针逐个后移,每次判断是否两个指针值相同 时间复杂度O(L1+L2+max(L1,L2)) 编程之美上: 判断两个链表最后一个结点是否相同, 时间复杂

richardzrc的博客搬家了--->richardzhang.info 924

算法面试:精选微软经典的算法面试100题

<br /><br />微软等数据结构+算法面试100题首次完整亮相     (注:本文转自July)<br />            ---100题V0.1版最终完成<br /> <br />================<br />作者:July  2010年12月6日<br />微软等100题系列V0.1版终于结束了。<br />从2010年10月11日当天最初发表前40题以来,直至此刻,整理这100题,已有近2个月。<br />2个月,因为要整理这100题,很多很多其它的事都被我强迫性的搁置一旁

慢慢的前进 1509

[分类整理II]微软等100题系列V0.1版:链表面试题集锦

微软等100题系列V0.1版整理II:链表面试题集锦--July   2010年12月14日======================= 此微软等100题系列V0.1版,关于链表的面试题,占了11道。链表,在数据结构中,也是一个最基本的重头戏。请看:--------------第7题微软亚院之编程判断俩个链表是否相交给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。为了简化问题,我们假设俩个链表均不带环。问题扩展:1.如果链表可能有环列?2.如果需要求出俩个链表相交的第一个节点列?第13题

结构之法 算法之道 1万+

数据结构和算法经典100题-第7题

题目要求微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。问题扩展: 1.如果链表可能有环列? 2.如果需要求出俩个链表相交的第一个节点列?问题分析: 其实本题目是考察链表的相交和环的问题。 一个链表的相交判断中,带环和不带环的判断方法是不一样的。稍后介绍两个都带环链表和都不带环链表的相交的判断

bobkent的专栏 653
上一篇: 微软100题第4题(在二元树中找出和为某一值的所有路径)
下一篇: 微软100题第9题(判断整数序列是不是二元查找树的后序遍历结果)
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值