Yes, I'm Wu. 2009 fans, from today, imitate the "from zero single row" series, Vegetable chicken single brush leetcode!
Topic:
Given binary trees, write a function to check if they is equal or not. The binary trees is considered equal if they is structurally identical and the nodes has the same value.
Answer:
Verify that the two trees are equal. Using the idea of recursion , if the Val of the tree nodes are equal, then go to each of the trees to calculate whether the subtree is equal.
Note the recursive endpoint: the output is true when all two trees are empty trees . So I got this:
/** * Definition for binary tree * struct TreeNode {* int val; * TreeNode *left; * TreeNode *right; * Tre Enode (int x): Val (x), left (null), right (NULL) {} *}; */class Solution {public: bool Issametree (TreeNode *p, TreeNode *q) { if (p = = NULL && q = = null) retur n true; else if (P->val = = Q->val) return (Issametree (P->left, Q->left) && issametree (P->right, q >right)); else return false; }};
Well, not through ... When
Enter an empty tree, and when compared to a non-empty tree, the empty tree simply cannot fetch the Val value。 So to be
the case of entering an empty tree first (if it is placed in a later branch, or if an empty tree evaluation is encountered) excludes all。 Get:
/** * Definition for binary tree * struct TreeNode {* int val; * TreeNode *left; * TreeNode *right; * Tre Enode (int x): Val (x), left (null), right (NULL) {} *}; */class Solution {public: bool Issametree (TreeNode *p, TreeNode *q) { if (p = = NULL && q = = null) retur n true; else if ((p==null && q!=null) | | (q==null && p!=null) | | (P->val! = q->val)) return false; else if (P->val = = Q->val) return (Issametree (P->left, Q->left) && issametree (P->right, q >right));} };
"Leetcode from zero single brush" Same Tree