題目描述
給你兩棵二叉樹,原始樹 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%的用戶