LeetCode 1485. 克隆含随机指针的二叉树
题目描述
思路分析
解法一:同步 DFS(推荐)
核心思路:
- 同时遍历原树与克隆树。
- 当原树节点等于
target时,返回克隆树对应节点。
复杂度分析:
- 时间复杂度:O(n)。
- 空间复杂度:O(h)。
class Solution {
public TreeNode getTargetCopy(TreeNode original, TreeNode cloned, TreeNode target) {
if (original == null) {
return null;
}
if (original == target) {
return cloned;
}
TreeNode left = getTargetCopy(original.left, cloned.left, target);
if (left != null) {
return left;
}
return getTargetCopy(original.right, cloned.right, target);
}
}
func getTargetCopy(original *TreeNode, cloned *TreeNode, target *TreeNode) *TreeNode {
if original == nil {
return nil
}
if original == target {
return cloned
}
left := getTargetCopy(original.Left, cloned.Left, target)
if left != nil {
return left
}
return getTargetCopy(original.Right, cloned.Right, target)
}
相似题目
| 题目 | 难度 | 考察点 |
|---|---|---|
| 572. 另一棵树的子树 | 简单 | 树遍历 |
| 100. 相同的树 | 简单 | 树遍历 |
| 101. 对称二叉树 | 简单 | 树遍历 |
| 112. 路径总和 | 简单 | DFS |
| 617. 合并二叉树 | 简单 | DFS |
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议,转载请注明出处!