LetCode in Swift (617-Merge Two Binary Trees)
文档更新说明
- 最后更新 2018年03月09日
- 首次更新 2018年03月09日
前言
使用Swift语言完成LetCode题目,简单难度
617. Merge Two Binary Trees
Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.
You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.
Example1
Input:
Tree 1 Tree 2
1 2
/ \ / \
3 2 1 3
/ \ \
5 4 7
Output:
Merged tree:
3
/ \
4 5
/ \ \
5 4 7
Note
The merging process must start from the root nodes of both trees.
Solution
题意是给出两个二叉树,合并成一个.同个位置的节点,合并之后的新节点的值就是两节点只和;如果同个位置缺少了一个节点,则其直接成为新节点;若两个节点都是空的,则合并之后的节点则为空.
对于每一个节点来说,都是在重复上诉步骤,所以可以采用递归算法,比较容易实现.
1 | import Foundation |