尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

小米初级Android面经:反转链表(迭代+递归)、Activity生命周期、ConcurrentHashMap在JDK

小米初级Android面经:反转链表(迭代+递归)、Activity生命周期、ConcurrentHashMap在JDK 小米初级Android面试:小米Android开发覆盖MIUI系统定制、IoT设备互联。技术栈偏底层,面试官喜欢问系统级原理和性能数据。技术方向偏向MIUI定制、IoT互联。特色专项包括MIUI系统定制与IoT设备开发。今天8道题覆盖小米初级Android面试核心考点。Q1:反转链表(迭代+递归)?迭代:pre=null, cur=head,遍历时记下next=cur.next,然后cur.next指pre,pre和cur后移。时间复杂度O(n),空间O(1)。递归:递到最后一个节点作为新head,归的时候head.next.next=head, head.next=null。fun reverse(head: ListNode?): ListNode? { var pre: ListNode? = null; var cur = head while (cur != null) { val next = cur.next; cur.next = pre; pre = cur; cur = next } return pre }深度解析:从复杂度看,迭代三指针(pre/cur/next)原地反转,时间 O(n) 空间 O(1)。。常见变体与延伸包括:K 个一组反转(穿针引线)、反转部分区间。。实战要特别注意边界情况:空/单节点、k 大于长度、k=1 不变。。面试官大概率会接着追问:反转后原头节点的 next 指向哪里?会不会成环?。追问:递归版本的空间复杂度?O(n)——递归调用栈深度等于链表长度。Q2:Activity生命周期,A启动B
返回列表