在Python中递归导航员工树

Lit*_*les 0 python recursion

我最近提出了这个问题,但我不是很擅长编写递归函数.你会如何解决它?

您的公司结构如下:

#          employee: manager
company = {
           '17': '15', 
           '16': '15',
           '10': '5', 
           '15': '10',  
           '5': '4', 
           '4': 'NULL'
           }
Run Code Online (Sandbox Code Playgroud)

每个号码都是该人的身份.由于没有经理,第4人是CEO并且具有NULL值.你怎么能写一个reportsTo(eid, mid)返回的递归函数:

  • reportsTo('17', '4') - > True
  • reportsTo('15', '16') - > False

Jor*_*ley 5

  def reportsTo(eid, mid):
       m2 = company[eid]
       if m2 == "NULL": return False
       return m2 == mid or reportsTo(m2, mid)
Run Code Online (Sandbox Code Playgroud)

  • +1这简短而美丽!轻微的pep8 nit:在``return``之前和在报告中的逗号之后缺少空格(两次). (2认同)