leetcode 65: Same Tree
来源:互联网 发布:java file 删除文件 编辑:程序博客网 时间:2024/04/26 12:50
Same TreeSep 3 '12
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.
bad one recursive.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { // Start typing your Java solution below // DO NOT write main() function if(p==null && q==null) return true; else if( p==null || q==null) return false; if( p.val != q.val) return false; else return isSameTree( p.left, q.left) && isSameTree(p.right, q.right); }}
good one iterative.
public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { // Start typing your Java solution below // DO NOT write main() function Queue<TreeNode> q1 = new LinkedList<TreeNode>(); Queue<TreeNode> q2 = new LinkedList<TreeNode>(); q1.offer(p); q2.offer(q); while( !q1.isEmpty() && !q2.isEmpty() ) { TreeNode x = q1.poll(); TreeNode y = q2.poll(); if(x==null) { if( y!=null) return false; else continue; } if(y==null || x.val!=y.val) return false; q1.offer( x.left); q1.offer( x.right); q2.offer(y.left); q2.offer(y.right); } return true; }}
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool isSameTree(TreeNode *p, TreeNode *q) { // Start typing your C/C++ solution below // DO NOT write int main() function queue<TreeNode*> q1; queue<TreeNode*> q2; q1.push(p); q2.push(q); while(!q1.empty() && !q2.empty()){ TreeNode* n1 = q1.front(); TreeNode* n2 = q2.front(); q1.pop(); q2.pop(); if(n1==nullptr && n2==nullptr) continue; if(n1==nullptr || n2==nullptr) return false; if( n1->val != n2->val) return false; q1.push(n1->left); q1.push(n1->right); q2.push(n2->left); q2.push(n2->right); } return q1.empty() && q2.empty(); }};
- leetcode 65: Same Tree
- LeetCode (65):Same tree
- Leetcode - Tree - Same Tree
- [leetcode][tree] Same Tree
- LeetCode: Same Tree
- LeetCode Same Tree
- [Leetcode] Same Tree
- LeetCode : Same Tree
- [LeetCode] Same Tree
- Leetcode 100 Same Tree
- [leetcode] Same Tree
- [LeetCode]Same Tree
- [leetcode]Same Tree
- [Leetcode]Same Tree
- Leetcode: Same Tree
- [LeetCode] Same Tree
- LeetCode-Same Tree
- [leetcode] Same Tree
- Linux写时拷贝技术fork
- Servlet的配置
- [ruby语言]Spreadsheet合并单元格(行/列)
- 论测试与开发的关系
- oracle动态创建job
- leetcode 65: Same Tree
- PowerDesigner 使用总结
- iOS中判断一个文件夹是否存在
- spring 异常本地处理
- 如何确保备份有效
- struts2上传存入org.eclipse.wst.server.core\tmp0\wtpwebapps\oajbpm12\WEB-INF\电脑重启后消失
- Request_irq和setup_irq的区别
- 回顾2012年重大安全事件
- ios:定制UILabel