当前位置: 首页 > 面试题库 >

写一个方法,实现树的路径查询

马朝斑
2023-03-14
问题内容

[代码]

作者:ustchcl

给定以下树结构

type Tree = {
  id: number;
  name: string;
  children: Tree[];
}

const tree: Tree = {
  id: 1,
  name: "中国",
  children: [
    {id: 2, name: "北京市", children: [
      {id: 3, name: "朝阳区", children: []},
      {id: 4, name: "海淀区", children: []},
    ]},
    {id: 5, name: "上海市", children: [
      {id: 6, name: "徐汇区", children: []},
      {id: 7, name: "黄浦区", children: []},
    ]},
  ]
}

function findPathById(id: number): string {
  // 在这儿书写
}

findPathById(4) // 中国北京市海淀区

问题答案:
 function findPathById(id, Tree) {
    let res = []
    function get(tree, arr = []) {
      Array.isArray(tree) && tree.forEach(val => {
        let arrX = JSON.parse(JSON.stringify(arr)) //拷贝一下数组
        arrX.push(val.name)
        val.id === id ? (res = arrX) : val.children && get(val.children, arrX)
      })
    }
    get([Tree])
    return res.join(",")
  }
  const str = findPathById(4, Tree)
 类似资料:
  • 本文向大家介绍Java实现打印二叉树所有路径的方法,包括了Java实现打印二叉树所有路径的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java实现打印二叉树所有路径的方法。分享给大家供大家参考,具体如下: 问题: 给一个二叉树,把所有的路径都打印出来。 比如,对于下面这个二叉树,它所有的路径为: 8 -> 3 -> 1 8 -> 2 -> 6 -> 4 8 -> 3 -> 6 ->

  • 本文向大家介绍Python3实现从指定路径查找文件的方法,包括了Python3实现从指定路径查找文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python3实现从指定路径查找文件的方法。分享给大家供大家参考。具体实现方法如下: 这里给定一个搜索路径,根据这个路径请求和请求的文件名,找到第一个符合要求的文件 希望本文所述对大家的Python3程序设计有所帮助。

  • 我知道Dijkstra的算法实际上是使用斐波那契堆实现的。但是,它也可以使用红色的黑树来实现,并且仍然具有O(m log n)的最坏情况运行时间吗?

  • 本文向大家介绍vue webpack重写cookie路径的方法,包括了vue webpack重写cookie路径的方法的使用技巧和注意事项,需要的朋友参考一下 Cookie详解 Cookie在远程浏览器端存储数据并以此跟踪和识别用户的机制。从实现上说,Cookie是存储在客户端上的一小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行Cookie交互。 Cooke独立于语言存在,严格地说,C

  • 问题内容: 使用readlink函数作为“如何在C中找到可执行文件的位置”的解决方案?,我如何将路径转换为char数组?另外,变量buf和bufsize代表什么,以及如何初始化它们? 编辑:我试图获取当前正在运行的程序的路径,就像上面链接的问题一样。这个问题的答案说来有用。我不知道如何在我的程序中实现它。我试过了: 这显然是不正确的。 问题答案: 这使用的readlink()函数正确的正确使用功能

  • 本文向大家介绍Powershell使用C#实现缩写路径,包括了Powershell使用C#实现缩写路径的使用技巧和注意事项,需要的朋友参考一下 支持2.0及以后版本。 某些时候报表中的路径字符串是非常长的。如果需要你也可以缩写它,但是这样路径就失去的使用价值。最好是使用内置的API它可以灵活的缩略路径。 接下来要告诉你如何在Powershell脚本中使用C#代码: 一旦你执行这段代码,就会产生一个