LeetCode-100. Same Tree (Java)
来源:互联网 发布:nero刻录软件免费版 编辑:程序博客网 时间:2024/06/06 14:07
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.
--------------------------------------------------------------------------------------------------------------------------
题意
判断两个二叉树是否相同,需要节点值以及树结构相同。
思路
考虑到树结构需要相同,我首先想到了通过不同遍历方式组合可以唯一确定一个树,判断节点是否相同,则直接
比较字符串是否相同即可。
关于唯一确定二叉树的集中遍历组合
组合一:前序+中序
组合二:前序+后序
组合三:中序+后序
这里,我用了组合一。
代码
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { boolean flag = false;String preOrderOfP = preOrder(p);String preOrderOfQ = preOrder(q);String inOrderOfP = inOrder(p);String inOrderOfQ = inOrder(q);if(preOrderOfP.equals(preOrderOfQ) && inOrderOfP.equals(inOrderOfQ)){flag = true;}return flag; } //先序遍历 public static String preOrder(TreeNode node){ if(node == null){ return "null"; } return node.val+"" +preOrder(node.left)+preOrder(node.right); } //中序遍历 public static String inOrder(TreeNode node){ String s = null; if(node == null){ return "null"; } return inOrder(node.left)+node.val+""+inOrder(node.right); }}
还有另外一种耗时更短的方法
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if( p == null && q == null ) return true; if( (p == null && q != null) || (q == null && p != null)) return false; if ( p.val != q.val) return false; return isSameTree(p.left,q.left) && isSameTree(p.right,q.right); }}
这个方法则是利用相同的遍历方式,同时对两个二叉树的左(右)孩子进行遍历,然后进行判断。此方法更简洁。
阅读全文
0 0
- leetcode-java-100. Same Tree
- 【leetcode】100. Same Tree【java】
- LeetCode-100. Same Tree (Java)
- [Leetcode] Same Tree (Java)
- LeetCode-Same Tree(java)
- Leetcode Same Tree Java
- [LeetCode][Java] Same Tree
- LeetCode|Same Tree-java
- (java)leetcode Same Tree
- leetcode:Same Tree 【Java】
- Leetcode:100. Same Tree (JAVA)
- [leetcode]100. Same Tree@Java解题报告
- [LeetCode]100.Same Tree
- LeetCode 100. Same Tree
- 【LeetCode】100.Same Tree
- [Leetcode] 100. Same Tree
- [Leetcode] 100. Same Tree
- LeetCode --- 100. Same Tree
- 常用类库API
- fatal: pathspec 'readme.txt' did not match any files
- Hibernate环境搭建与测试
- FFMPEG结构体分析:AVFormatContext
- 三次握手
- LeetCode-100. Same Tree (Java)
- 移动硬盘安装centos7出现 /dev/root does not exist 的解决方案
- 41. OP-TEE中secure stroage------安全文件中数据的加密操作
- 一段感悟很深的话
- Hadoop入门案例(七)之TOP K
- c++学习 动态链接库的使用
- Linux常见的一些简单命令操作及简单小问题整理
- 集合
- Web前端学习(4)_BOM编程_事件编程