123
返回列表 发新帖
楼主: jingjing12345
跳转到指定楼层
上一主题 下一主题
收起左侧

非死不可 热乎昂赛面经 NEW GRAD

🔗
edyyy 2018-4-15 09:10:35 | 只看该作者
全局:
二差树转双向linked list
https://www.youtube.com/watch?v=Dte6EF1nHNo
回复

使用道具 举报

🔗
edyyy 2018-4-15 10:38:24 | 只看该作者
全局:
  
  1. //left = next; right = prev; head->prev = tail
  2. pair<TreeNode*,TreeNode*> helper(TreeNode* root) {// return {head, tail}
  3.     if (root == NULL || (root->left == NULL && root->right == NULL)) return make_pair(root,root);
  4.     pair<TreeNode*,TreeNode*> l = helper(root->left);
  5.     pair<TreeNode*,TreeNode*> r = helper(root->right);
  6.     //head = l.first; tail = r.second
  7.     root->left = l.second;
  8.     if (l.second)l.second->right = root;
  9.     root->right = r.first;
  10.     if (r.first) r.first->left = root;
  11.     return make_pair(l.first, r.second);
  12. }
  13. TreeNode* bt2dl(TreeNode* root) {
  14.     return helper(root).first;
  15. }
复制代码
回复

使用道具 举报

🔗
ohshout 2018-4-16 05:42:52 | 只看该作者
全局:

50   TreeNode * n25 = new TreeNode (25);
51   TreeNode * n30 = new TreeNode (30);
52   TreeNode * n11 = new TreeNode (11);
53   n30->left = n11;
54   TreeNode * n12 = new TreeNode (12);
55   n12->left = n25;
56   n12->right = n30;
57   TreeNode * n15 = new TreeNode (15);
58   TreeNode * n36 = new TreeNode (36);
59   n15->left = n36;
60   TreeNode * n10 = new TreeNode (10);
61   n10->left = n12;
62   n10->right = n15;


这样的test case 过不了啊
回复

使用道具 举报

🔗
 楼主| jingjing12345 2018-4-16 13:55:14 | 只看该作者
全局:
ohshout 发表于 2018-4-16 05:42
50   TreeNode * n25 = new TreeNode (25);
51   TreeNode * n30 = new TreeNode (30);
52   TreeNo ...

用iterative写,很清晰。如果你用recursive的话,让你的helper function return the last node connected. 比如 leftResult = helper(node.left), 然后leftResult.next = node, node.prev = leftResult. 然后rightResult =  helper(node.right), return rightResult == null ? node : rightResult;
回复

使用道具 举报

🔗
 楼主| jingjing12345 2018-4-16 14:12:02 | 只看该作者
全局:
taoli0515 发表于 2018-4-15 03:49
按照层主的思路 似乎不需要union find,凡是element对应两个及以上的set id就union,这里如何输出结果呢?

我细细想了想,细节上确实有问题。因为我和面试官最后讨论的是output的时候。之前还是需要Union find来合并。只是最后Output的时候,不需要查到root,只需要查到parent就行了,直接加到parent的set里。
回复

使用道具 举报

🔗
huaye 2018-4-26 03:34:38 | 只看该作者
全局:
[x’s < smaller, smaller, smaller <= x’s < larger, larger, x’s >= larger] LZ能详细讲一下这个题目意思吗
回复

使用道具 举报

🔗
肚肚大 2018-4-26 08:37:53 | 只看该作者
全局:
请问你说的shadow是什么意思啊
回复

使用道具 举报

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

本版积分规则

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