【力扣日記】1379 找出克隆二叉樹中的相同節點

題目描述

給你兩棵二叉樹,原始樹 original 和克隆樹 cloned,以及一個位於原始樹 original 中的目標節點 target。

其中,克隆樹 cloned 是原始樹 original 的一個 副本 。

請找出在樹 cloned 中,與 target 相同 的節點,並返回對該節點的引用(在 C/C++ 等有指針的語言中返回 節點指針,其他語言返回節點本身)。

注意:
你 不能 對兩棵二叉樹,以及 target 節點進行更改。
只能 返回對克隆樹 cloned 中已有的節點的引用。

進階:如果樹中允許出現值相同的節點,你將如何解答?

算法思路

如果樹中值全不同,那麼無需源樹,遍歷克隆樹比較值即可。

進階:

class Solution:
    def getTargetCopy(self, original: TreeNode, cloned: TreeNode, target: TreeNode) -> TreeNode:
        if original==target:return cloned
        if not original:return
        return self.getTargetCopy(original.left,cloned.left,target) or self.getTargetCopy(original.right,cloned.right,target)

執行用時 :696 ms, 在所有 Python3 提交中擊敗了89.16%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章