leetcode[Subtree of Another Tree]//待整理多种解法
来源:互联网 发布:董小飒淘宝零食店 编辑:程序博客网 时间:2024/06/05 15:36
解法一:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution {//判断在二叉树s中是否存在一棵子树,使得该子树与二叉树t存在相同的结构,并且每个结点的值相同//既然要每个结点的值相同,那么就在二叉树s中找出所有二叉树t的根节点的值相同的结点,然后再判断具体的结构是否相同private void recurseFind(TreeNode root, List<TreeNode> list, int find){if(root == null) return;if(root.val == find){list.add(root);}recurseFind(root.left, list, find);recurseFind(root.right, list, find);}private void recurse(TreeNode root, List<TreeNode> list){if(root == null) return;list.add(root);recurse(root.left, list);recurse(root.right, list);}private boolean isSame(TreeNode a, TreeNode b){//判断两棵二叉树是否相同,就将两棵树采用相同的遍历方式,然后遍历结点分别存入容器,最后来比较两个容器List<TreeNode> listA = new ArrayList<>();List<TreeNode> listB = new ArrayList<>();recurse(a, listA);recurse(b, listB);if(listA.size() != listB.size()) return false;while(!listA.isEmpty()){if(listA.remove(0).val != listB.remove(0).val){return false;}}return true;} public boolean isSubtree(TreeNode s, TreeNode t) { if(t == null) return true; if(s == null && t != null) return false; List<TreeNode> list = new ArrayList<>();//用一个容器来存放二叉树s中所有与二叉树t的根节点的值相同的结点 recurseFind(s, list, t.val); boolean flag = false; while(!flag && !list.isEmpty()){ //每次从List中移除一个检点,判断以这个结点为根的树是否与二叉树t具有相同的结构(并且每个结点的值相同) TreeNode out = list.remove(0); flag = isSame(out, t); } return flag; }}
阅读全文
0 0
- leetcode[Subtree of Another Tree]//待整理多种解法
- leetcode [Minimum Depth of Binary Tree]//待整理多种解法
- leetcode[Diameter of Binary Tree]//待整理多种解法
- LeetCode: Subtree of Another Tree
- leetcode : subtree of another tree
- LeetCode Subtree of Another Tree
- [LeetCode] Subtree of Another Tree
- leetcode_572. Subtree of Another Tree ? 待解决
- Subtree of Another Tree问题及解法
- leetcode[Lowest Common Ancestor of a Binary Search Tree]//待整理多种解法
- leetcode[Average of Levels in Binary Tree]//待整理多种解法
- leetcode [Balanced Binary Tree]//待整理多种解法
- leetcode [Invert Binary Tree]//待整理多种解法
- leetcode[Binary Tree Paths]//待整理多种解法
- leetcode[Convert BST to Greater Tree]//待整理多种解法
- leetcode[Binary Tree Tilt]//待整理多种解法
- leetcode[Construct String from Binary Tree]//待整理多种解法
- 【LeetCode】Subtree of Another Tree 解题报告
- Mysql主从配置,实现读写分离(转载)
- 算法导论 最大流 FordFulkson
- iframe跳转
- 静态代理和动态代理
- wordpress调用网站统计大全
- leetcode[Subtree of Another Tree]//待整理多种解法
- pagedata公共类 分页
- Spring MVC+hibernate 使用@ResponseBody返回json报500 (Internal Server Error)
- 转的 侵立删 java 线程栈模型
- 大数据生态系统基础:Hadoop(一):介绍和安装
- minifilter 与用户态的通信
- IDEA常用快捷键汇总
- c++ 智能指针用法详解
- react-native TransformError 错误处理