LC 872. Leaf-Similar Trees
阿新 • • 發佈:2018-12-11
1.題目
872. Leaf-Similar Trees
Easy
25914
Consider all the leaves of a binary tree. From left to right order, the values of those leaves form a leaf value sequence.
For example, in the given tree above, the leaf value sequence is (6, 7, 4, 9, 8)
.
Two binary trees are considered leaf-similar
Return true
if and only if the two given trees with head nodes root1
and root2
are leaf-similar.
Note:
- Both of the given trees will have between
1
and100
nodes.
2.解題思路
DFS搜尋所有葉子結點,用一個vector儲存,直接比較兩個vector是否相等
3.程式碼
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool leafSimilar(TreeNode* root1, TreeNode* root2) { vector<int> leaf1, leaf2; getleaf(root1, leaf1); getleaf(root2, leaf2); return leaf1 == leaf2;//直接比較兩個容器是否相等 } void getleaf(TreeNode* root, vector<int>& leaf)//DFS遍歷 { if(root == NULL) return; if(root->left == NULL && root->right == NULL) leaf.push_back(root->val); getleaf(root->left, leaf); getleaf(root->right, leaf); } };