Same Tree

来源:互联网 发布:晨曦预算软件 编辑:程序博客网 时间:2024/05/29 03:56

LeetCode题目来源

Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

这道题我是先把树变成一排序列,再比较相同与否,代码如下:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */void dfs(TreeNode*root,vector<int>&que) {   if(root == NULL){      que.push_back(0);      return;   }   que.push_back(root->val);   dfs(root->left,que);   dfs(root->right,que);}class Solution {public:    bool isSameTree(TreeNode* p, TreeNode* q) {        vector<int>p_que,q_que;        dfs(p,p_que);        dfs(q,q_que);        if(p_que.size() != q_que.size()) return false;        for(int i = 0; i < p_que.size(); i++){            if(p_que[i] != q_que[i]) return false;        }        return true;    }};
0 0