LeetCode
来源:互联网 发布:linux 局域网域名配置 编辑:程序博客网 时间:2024/05/17 09:33
Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself.
Example 1:
Given tree s:
3 / \ 4 5 / \ 1 2Given tree t:
4 / \ 1 2Return true, because t has the same structure and node values with a subtree of s.
Example 2:
Given tree s:
3 / \ 4 5 / \ 1 2 / 0Given tree t:
4 / \ 1 2Return false.
居然卡题了,挺蠢的。。。本来想的是先找到值相等的地方,再开始进行循环判断,结果发现多个值跟t->val相等的时候就会判断不出来,就,很难受。。。
然后干脆直接写循环吧。。。行吧。。。
/** * 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 isSubtree(TreeNode* s, TreeNode* t) { if (s == NULL && t != NULL) return false; if (solve(s, t)) return true; return isSubtree(s->left, t) || isSubtree(s->right, t); } bool solve(TreeNode* s, TreeNode* t) { if (s == NULL && t == NULL) return true; if (s == NULL || t == NULL) return false; if (s->val != t->val) return false; return solve(s->left, t->left) && solve(s->right, t->right); }};
赋上WA代码
/** * 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 isSubtree(TreeNode* s, TreeNode* t) { if (t == NULL) return true; if (s == NULL) return false; TreeNode* s1 = s; stack<TreeNode*> sta; sta.push(s); while (true && !sta.empty()) { TreeNode* cur = sta.top(); sta.pop(); if (cur->val == t->val) { s = cur; break; } if (cur->left) sta.push(cur->left); if (cur->right) sta.push(cur->right); } bool ans = solve(s, t); return ans; } bool solve(TreeNode* s, TreeNode* t) { if (s == NULL && t == NULL) return true; if (s == NULL || t == NULL) return false; if (s->val != t->val) return false; return solve(s->left, t->left) && solve(s->right, t->right); }};
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- 变量的取用、删除、取代与替换
- ubuntu 14.04 直接在终端登录远程服务器
- 小公司程序员怎么进大公司
- jQuery使用ajaxSubmit()提交表单
- C#中的可空数据类型
- LeetCode
- 支付宝创建交易异常,请重新创建后再付款
- HDU4565---So Easy!(矩阵快速幂(精度控制))
- 最快让你上手ReactiveCocoa之基础篇
- 备份
- caffe message学习之BlobShape
- 1332: 幂的末尾
- 数组中0所在行列设置为0
- springmvc