leetcode[100]Same Tree
问题:给定两个二叉树,判断是否相同。(树的结构和元素均相同)[1]
输入:TreeNode* p,TreeNode* q
输出:true / false
思路:DFS,遇到不相同的,则返回false。否则,遍历完成后,返回true。
/*** 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 isSameTree(TreeNode* p, TreeNode* q) {if((p!=NULL)&&(q!=NULL)) //避免访问空指针{if(p->val!=q->val){return false;}else{return (isSameTree(p->left, q->left))&&(isSameTree(p->right, q->right));}}else if((p==NULL)&&(q==NULL)){return true;}else{return false;}// return true;}
};
隔壁大神将if语句转换为return里的与或。[2]但是个人觉得不易于阅读代码者理解。
- https://leetcode.com/problems/same-tree/
- https://leetcode.com/problems/same-tree/discuss/32685/Here's-a-C%2B%2B-recursion-solution-in-minimal-lines-of-code
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
