方法:DFS
    遇到问题:1、leaf1==leaf2重载运算符判断两边容器值是否相等
    2、void leaf(TreeNode* root,vector&leafnum)又一次在引用符上犯错误,吸取教训吸取教训!!!!

    1. /**
    2. * Definition for a binary tree node.
    3. * struct TreeNode {
    4. * int val;
    5. * TreeNode *left;
    6. * TreeNode *right;
    7. * TreeNode() : val(0), left(nullptr), right(nullptr) {}
    8. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    9. * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    10. * };
    11. */
    12. class Solution {
    13. public:
    14. bool leafSimilar(TreeNode* root1, TreeNode* root2) {
    15. vector<int> leaf1;
    16. vector<int> leaf2;
    17. leaf(root1,leaf1);
    18. leaf(root2,leaf2);
    19. return leaf1==leaf2;
    20. }
    21. void leaf(TreeNode* root,vector<int>&leafnum){
    22. if(root->left==NULL&&root->right==NULL){
    23. leafnum.push_back(root->val);
    24. cout<<root->val;
    25. }
    26. if(root->left){
    27. leaf(root->left,leafnum);
    28. }
    29. if(root->right){
    30. leaf(root->right,leafnum);
    31. }
    32. }
    33. };