【LeetCode从零单刷】Same Tree
来源:互联网 发布:网络舆情软件 编辑:程序博客网 时间:2024/06/03 21:32
没错我就是伍声2009的粉丝,从今天起,模仿《从零单排》系列,菜鸡单刷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.
解答:
验证两棵树是否相等。使用递归的思想,如果树节点的val相等,则去各自计算子树是否是相等的树。
注意递归终点:输入的两棵树全部都是空树时,输出 true. 所以我得到了这个:
/** * Definition for binary tree * 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) return true; else if(p->val == q->val) return (isSameTree(p->left, q->left) && isSameTree(p->right, q->right)); else return false; }};好吧没有通过……当输入空树,与一棵非空树比较时,空树根本无法取到 val 值。所以要将输入空树的情况首先(如果放到以后的分支中,还是会遇到空树求值的情况)全部排除。得到:
/** * Definition for binary tree * 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) return 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)); }};
0 0
- 【LeetCode从零单刷】Same Tree
- Leetcode - Tree - Same Tree
- [leetcode][tree] Same Tree
- 【LeetCode从零单排】No100 Same Tree && No101 Symmetric Tree
- LeetCode: Same Tree
- LeetCode Same Tree
- [Leetcode] Same Tree
- LeetCode : Same Tree
- [LeetCode] Same Tree
- leetcode 65: Same Tree
- Leetcode 100 Same Tree
- [leetcode] Same Tree
- [LeetCode]Same Tree
- [leetcode]Same Tree
- [Leetcode]Same Tree
- Leetcode: Same Tree
- [LeetCode] Same Tree
- LeetCode-Same Tree
- 关于Linux“惊群”
- 栈的基本操作
- 【腾讯】1亿个数据取前1万大的整数
- C#之语音朗读
- 多线程基础 ios
- 【LeetCode从零单刷】Same Tree
- 对《Python核心编程》中“第一个Python程序”的改进
- 计蒜客--第35题:灌溉
- Integer to Roman - LeetCode
- 经网络中隐层数和隐层节点数问题的讨论
- 使用PHP生成二维码的两种方法(带logo图像)
- c语言 vs2013 安全检查
- ThreadLocal详解
- C++ STL学习之stack。