首页 > 资料专栏 > 经营 > 常用范文 > 工作总结 > 互联网技术岗之算法面试笔试总结DOC

互联网技术岗之算法面试笔试总结DOC

pengyou***
V 实名认证
内容提供者
资料大小:44KB(压缩后)
文档格式:DOC
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2022/9/9(发布于江苏)

类型:积分资料
积分:10分 (VIP无积分限制)
推荐:升级会员

   点此下载 ==>> 点击下载文档


“互联网技术岗之算法面试笔试总结DOC”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
Algorithms and Data Structures
1明确数据结构,单一进行操作
1-1单一数据结构
1-1-1链表
在单数据结构(即在题目中明确提到了某种数据结构,没有掺杂,也没有背景,只是进行某些特定操作)的题型中,链表是一大类,而单链表因为其特定的存储结构和读取方法又成为考查的重点。
列举题目如下
(注:以下题目的给定Node节点全部为如下定义方式)
public class Node
{
public Node next;
public object data;
}
1-1-1-1单链表的反转
给定单链表的头节点Node head.给出将此链表反转的方法。
public void ReverseLinkedList(Node head)
{
//首先,反转后必然head为尾部节点,将head的一份拷贝赋值给一个新的node节点,用于托管旧的链表。
Node nDele = head;
//等你将旧链表需要摘取的项加到新链表头部时,需要用另一个node暂时托管旧链表。
Node nNext = null;
//此时就将head 置为了新链表的末尾了。
head = null;
while (nDele != null)
{
//这几部依次为:先存下当前节点的下一节点用于备份,之后将dele节点指向新链表的头部并且将新链表的头位置前移,同时控制每次循环都能指向后一个节点向前进行。
nNext = nDele.next;
nDele.next = head;
head = nDele;
nDele = nNext;
}
//至此算法完结。在这个while循环结束时候,就将原来的链表重新接在了新链表上,完成了逆转操作。
}
1-1-1-2链表相交
给定两个单链表,表头分别为head1和head2.判断两个链表是否相交,如果不相交返回null,如果相交,则给出相交的第一个交点。
对题目进行简单分析后不难得出,因为链表的特殊存储结构,使得其在存储结构上如果交叉则一定为“Y”型或者为“V”型,不可能为“X”型。所以相交只需求出第一个交点。
算法具体实现可以如下
public Node FindSameNode(Node head1, Node head2)