剑指Offer面试题18 & Leetcode572
来源:互联网 发布:qq mac版是什么 编辑:程序博客网 时间:2024/06/08 07:09
剑指Offer面试题18 & Leetcode572
Subtree of Another Tree 树的子结构
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.
解题思路
考虑:首先寻找s树中与t树头结点值相同的节点,可以用递归实现。找到相同的节点后,比较该节点为头的节点和t树是否完全相同,这个过程也可以用递归完成。剑指Offer上此题与leetcode572题有一些不同之处:前者的子树为只要包含这个树就可以,而后者必须是t树与s树对应节点的所有后代都相同。所以前者递归结束的条件是只要t树的指针指向null即可,而后者必须两个指针全部指向null。
Solution1 剑指Offer
public boolean isSubtree(TreeNode s, TreeNode t) { if(s!=null && t!=null){ if(s.val == t.val){ if(helper(s,t)) return true; } return isSubtree(s.left, t) || isSubtree(s.right, t); } return false; } boolean helper(TreeNode s, TreeNode t) { if(t == null) return true; if(s == null) return false; if(t.val != s.val) return false; return helper(s.left, t.left) && helper(s.right, t.right); }
Solution2 Leetcode572
public boolean isSubtree(TreeNode s, TreeNode t) { if(s!=null && t!=null){ if(s.val == t.val){ if(helper(s,t)) return true; } return isSubtree(s.left, t) || isSubtree(s.right, t); } return false; } boolean helper(TreeNode s, TreeNode t) { if(t == null && s == null) return true; if(s == null || t == null) return false; if(t.val != s.val) return false; return helper(s.left, t.left) && helper(s.right, t.right); }
1 0
- 剑指Offer面试题18 & Leetcode572
- 剑指offer面试题18
- 剑指offer 面试题
- 剑指offer面试题
- 剑指Offer(面试题14-18)
- 剑指offer面试题总结
- 剑指offer面试题06
- 剑指offer面试题 04
- 剑指offer 面试题07
- 剑指offer面试题08
- 剑指offer面试题42
- 剑指offer面试题1
- 剑指offer面试题3
- 剑指offer面试题4
- 剑指offer面试题5
- 剑指offer面试题6
- 剑指offer面试题7
- 剑指offer面试题8
- 求逆序对数
- Linux中启动Tomcat:bash: ./startup.sh: Permission denied问题
- ORB_SLAM2的编译运行
- 谷歌无人车将开启新的时代——首次载客
- [模版] 高精度
- 剑指Offer面试题18 & Leetcode572
- Unity Mesh生成图形二---绘制轮胎印,耕地区域
- Android程序问题(2)
- 网络请求fetch和组件ListView
- 和为零(sum)
- FASTDFS 介绍(一)
- PE 323 Bitwise-OR operations on random integers (概率dp)
- 【php基础班】第1天 editplus工具使用及HTML入门
- linux上安装svn版本管理系统(subversion+apache+jsvnadmin)