📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

微软onsite面经,附面试用户体验

🔗
luoxiaow2002 2018-11-19 10:41:53 | 只看该作者
全局:
很有用啊哈哈哈哈哈
回复

使用道具 举报

🔗
signalwolf 2018-11-19 12:07:49 | 只看该作者
全局:
写了写第三题,完全ad-hoc做的。不知有无其他诀窍。
  1. def traverse(root):
  2.     res = [root.val]
  3.     if root.left:
  4.         curr = root.left
  5.     else:
  6.         curr = root.right

  7.     while curr != root:
  8.         res.append(curr.val)
  9.         # have left child, go left
  10.         if curr.left:
  11.             curr = curr.left
  12.         # have right child, go right
  13.         elif curr.right:
  14.             curr = curr.right
  15.         # no left and right child but have right sibling:
  16.         elif curr.sibling and curr != root and curr.sibling == curr.parent.right:
  17.             curr = curr.sibling
  18.         # no left, right child and don't have right sibling:
  19.         # two cases:
  20.             # curr is the right child of parent
  21.             # curr don't have sibling
  22.         # case 1 handle, move to parents till it have an right sibling
  23.         # case 2 handle, move to parents till it have an right sibling
  24.         else:
  25.             while curr != root and (not curr.sibling or (curr.sibling and curr.sibling == curr.parent.left)):
  26.                 curr = curr.parent
  27.             if curr != root:
  28.                 curr = curr.sibling
  29.     return res
复制代码
回复

使用道具 举报

🔗
signalwolf 2018-11-19 12:13:09 | 只看该作者
全局:
LCA有O(logH)解法?,是BST的LCA?
回复

使用道具 举报

🔗
水浅王八多 2018-11-19 13:12:45 | 只看该作者
全局:
szyyn95 发表于 2018-11-19 05:04
Morris Traversal无论如何都会修改树,所以肯定不是,顺便这题很多公司都出过

嘿嘿嘿,morris traversal在遍历的最后会把tree还原的哦
回复

使用道具 举报

🔗
szyyn95 2018-11-19 21:40:00 | 只看该作者
全局:
水浅王八多 发表于 2018-11-19 13:12
嘿嘿嘿,morris traversal在遍历的最后会把tree还原的哦

我当然知道…过程中要修改树,我是这个意思

评分

参与人数 1大米 +5 收起 理由
水浅王八多 + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
水浅王八多 2018-11-20 01:54:03 | 只看该作者
全局:
szyyn95 发表于 2018-11-19 21:40
我当然知道…过程中要修改树,我是这个意思

那就。。。傻逼了。。
回复

使用道具 举报

🔗
szyyn95 2018-11-20 03:47:52 | 只看该作者
全局:
水浅王八多 发表于 2018-11-20 01:54
那就。。。傻逼了。。

https://www.geeksforgeeks.org/in ... recursion-or-stack/
我一直用的这个解法,据我所知谷歌也考过这个题
回复

使用道具 举报

🔗
水浅王八多 2018-11-20 04:49:09 | 只看该作者
全局:
szyyn95 发表于 2018-11-20 03:47
https://www.geeksforgeeks.org/inorder-non-threaded-binary-tree-traversal-without-recursion-or-stac ...

多谢多谢,mark了
回复

使用道具 举报

🔗
tly1212 2018-11-20 04:53:04 | 只看该作者
全局:
求LCA log(H)的思路
回复

使用道具 举报

🔗
newbieee 2018-11-20 06:16:02 | 只看该作者
全局:
同求LCA log(H)思路 一般不是O(h)吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表