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

门冲电面compare tree diff

   
🔗
anle 2021-7-29 13:58:19 | 只看该作者
全局:
楼主,follow up是什么啊?
回复

使用道具 举报

全局:
phmhmt2016 发表于 2021-7-23 05:57
这是个好问题,要问面试官,答案是key是唯一的

多谢回答!再请问一个问题,我看有的帖子说这题要分开存新增,删除更新节点,不知道你面试时要求只是个数还是说要返回好几个list呢?谢谢!
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-AKAU0  2021-9-16 09:03:03
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
whiskey547 2021-10-10 05:21:27 | 只看该作者
全局:
匿名者 发表于 2021-7-19 20:46
你說得對, 已經修正了, 看看還有沒有問題
過幾天我也要phone interview了, 希望不會被問到這道, 太複雜 ...

楼主 line51 错了吧,因为value扁了的话只是算是modify了一个node。所以应该是1,不是2
回复

使用道具 举报

🔗
niubuzhi 2021-10-25 09:45:11 | 只看该作者
全局:
A very succinct solution using Python (please add rice if you like it !!!)
  1. class TreeNode(object):

  2.     def __init__(self, key, value):
  3.         self.key = key  # this should be unique; int
  4.         self.value = value # int
  5.         self.children = [] # list of TreeNodes
  6.         
  7. class Solution(object):

  8.     def countNodes(self, node):
  9.         if node is None:
  10.             return 0

  11.         count = 1
  12.         
  13.         for child in node.children:
  14.             count += self.countNodes(child)
  15.        
  16.         return count

  17.     def findDiffNodes(self, root1, root2):
  18.         
  19.         if root1 is None and root2 is None:
  20.             return 0
  21.         
  22.         if root1 is None or root2 is None or root1.key != root2.key:
  23.             return self.countNodes(root1) + self.countNodes(root2)
  24.         
  25.         diffCount = 0
  26.         
  27.         if root1.value != root2.value:
  28.             diffCount += 2
  29.             
  30.         childsMap1 = { child.key: child for child in root1.children }
  31.         childsMap2 = { child.key: child for child in root2.children }
  32.         
  33.         childsAllKeys = set(childsMap1.keys()).union(set(childsMap2.keys()))
  34.         
  35.         for childKey in childsAllKeys:
  36.             diffCount += self.findDiffNodes(childsMap1.get(childKey), childsMap2.get(childKey))
  37.             
  38.         return diffCount
复制代码

评分

参与人数 2大米 +2 收起 理由
CestSiBon + 1 很有用的信息!
zjspm + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
jhdyss 2022-1-17 18:33:16 | 只看该作者
全局:
匿名者 发表于 2021-7-19 19:46
你說得對, 已經修正了, 看看還有沒有問題
過幾天我也要phone interview了, 希望不會被問到這道, 太複雜 ...

为什么 node1.val != node2.val 要diff=2,改变val不是应该算一个diff吗
回复

使用道具 举报

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

本版积分规则

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