题解 | #牛牛的二叉树问题#

牛牛的二叉树问题

https://www.nowcoder.com/practice/1b80046da95841a9b648b10f1106b04e

class Solution:
    def findClosestElements(self , root: TreeNode, target: float, m: int) -> List[int]:
        # write code here
        d = []
        def traverse(root):
            if root is None:
                return
            d.append(root.val-target)
            # 前序位置
            traverse(root.left)
            # 中序位置
            traverse(root.right)
        traverse(root)

        d.sort(key=lambda x:abs(x))
        print(d[:m])
        res = [int(x + target) for x in d[:m]]
        res.sort()
        return res

思路:利用数组d,遍历树,存储所有节点与target的差值

对d进行绝对值排序

取前m个值就是要求的节点

然后排序返回

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务