Leetcode算法学习日志-572 Subtree of Another Tree
来源:互联网 发布:用手机看淘宝价格走势 编辑:程序博客网 时间:2024/05/29 17:58
Leetcode 572 Subtree of Another Tree
题目原文
Given two non-empty binary trees s andt, check whether tree t has exactly the same structure and node values with a subtree ofs. A subtree of s is a tree consists of a node ins 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 2
Given tree t: 4 / \ 1 2
Return 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 / 0
Given tree t: 4 / \ 1 2
Return false.题意分析
判断树t是不是树s的子树。
解法分析
该题采用递归的思想解决,比较树s和树t,如果s=t,则t一定是s的子树,不然递归s的两个子树,判断t是不是这两个子树的子树,是其中一个的子树则函数返回1.C++代码如下
/** * 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 theSame(TreeNode* s, TreeNode*t){ if(t==NULL||s==NULL){//This is important if(t==s) return true; else return false; } if((s->val)!=(t->val)) return false; return theSame(s->left,t->left)&&theSame(s->right,t->right); } bool isSubtree(TreeNode* s, TreeNode* t) { if(theSame(s,t)) return true; if(s==NULL)//This is important return false; return isSubtree(s->left,t)||isSubtree(s->right,t); }};
上述代码需要注意对空指针的处理,不然会造成runtime error。阅读全文
0 0
- Leetcode算法学习日志-572 Subtree of Another Tree
- LeetCode 572 Subtree of Another Tree
- 【Leetcode-easy-572】Subtree of Another Tree
- leetcode 572 Subtree of Another Tree
- LeetCode: Subtree of Another Tree
- leetcode : subtree of another tree
- LeetCode Subtree of Another Tree
- [LeetCode] Subtree of Another Tree
- Leetcode 刷题Day7 404 SumofLeftLeaves 572 Subtree of Another Tree
- 【LeetCode】Subtree of Another Tree 解题报告
- [LeetCode]572. Subtree of Another Tree
- [leetcode]: 572. Subtree of Another Tree
- leetcode 572. Subtree of Another Tree
- [leetcode: Python]572. Subtree of Another Tree
- [leetcode]572. Subtree of Another Tree
- LeetCode 572. Subtree of Another Tree
- [LeetCode] 572. Subtree of Another Tree
- LeetCode-572. Subtree of Another Tree (Java)
- 动态规划(以合唱团为例)
- Geoserver发布图层在Layer Preview可以预览Tile Layers预览为图层切片报404
- TagLayout和ViewPager的使用
- javascript之DOM对象操作HTML
- rxjava2 与 retrofit 网络请求
- Leetcode算法学习日志-572 Subtree of Another Tree
- Shell基础
- Python基础:条件判断
- 栈的应用——计算器的四则运算
- no module named Crypto.Cipher
- 关于数据库根据分数排序的方式
- 015大数据课程知识点小结
- TableView 设置Item的位置
- hadoop机架感知