2026年华为工程师高级面试题及答案.docxVIP

  • 2
  • 0
  • 约6.07千字
  • 约 17页
  • 2026-05-19 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年华为工程师高级面试题及答案

一、编程题(共3题,每题20分)

1.题目(20分):

实现一个函数,输入一个包含重复数字的链表,返回一个去重后的链表,要求保持原始链表的顺序。不能使用额外的数据结构(如哈希表),但可以使用常数空间。假设链表节点定义如下:

cpp

structListNode{

intval;

ListNodenext;

ListNode(intx):val(x),next(nullptr){}

};

请写出函数代码,并简要说明时间复杂度和空间复杂度。

答案与解析:

cpp

ListNoderemoveDuplicates(ListNodehead){

if(!head)returnhead;

ListNodecurrent=head;

while(current-next){

if(current-val==current-next-val){

ListNodetemp=current-next;

current-next=temp-next;

deletetemp;//可选,防止内存泄漏

}else{

current=current-next;

}

}

returnhead;

}

解析:

-时间复杂度:O(n),遍历链表一次。

-

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档