1、给你一个凸多边形,你怎么用一条线,把它分成面积相等的两部分
2、有一条数轴,上有一整数点s,点s两侧分别放了两个机器人,不知道两个机器人分别距离s的距离,两机器人不能相互通信。 现在,给你以下指令:
R(往右一格) L(往左一格) IF(S)是否在S点 GOTO A,跳到A代码段。 设计一套指令给两个机器人,让两个器机可以最终在某一点相遇。
3、怎么判断两棵二叉树是否是同构的
4、按层次打印一个二叉树
5、给你一个数n(最大为10000),怎么求其阶乘
6、判断两个单链表是否有交叉
对于仅判断相交不相交的话:判断最后一个节点是否相同的办法并不慢,如果两个链表长度m,n 那么复杂度O(m+n),这是最优的复杂度
拓展:如何寻找交叉节点:
-
指针p、q分别遍历链表a、b,假设q先到达NULL(即 假设a 比 b 长),此时从a的头发出一个指针t,当p到达NULL时,从b的头发出s,当s==t的时候即交点.