【Leetcode】100. Same Tree
2016-03-25 13:20
459 查看
Question:
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.
My Solution (no recursion):1ms
My solution 2 (recursion): 0ms
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.
My Solution (no recursion):1ms
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { LinkedList<TreeNode> plist = new LinkedList<TreeNode>(); LinkedList<TreeNode> qlist = new LinkedList<TreeNode>(); public boolean isSameTree(TreeNode p, TreeNode q) { plist.push(p); qlist.push(q); while(plist.size() > 0 && qlist.size() > 0){ TreeNode p1 = plist.pop(); TreeNode q1 = qlist.pop(); if(!compare(p1,q1)){ return false; } } if(plist.size() == qlist.size()){ return true; }else{ return false; } } public boolean compare(TreeNode p, TreeNode q){ if(p == null && q == null){ return true; }else if(p != null && q != null){ if(p.val == q.val){ if(compareChild(p.left,q.left)){ if(compareChild(p.right,q.right)){ return true; } } } } return false; } public boolean compareChild(TreeNode p, TreeNode q){ if(p == null && q == null){ return true; }else if(p != null && q != null){ if(p.val == q.val){ plist.offer(p); qlist.offer(q); return true; } } return false; } }
My solution 2 (recursion): 0ms
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(!compare(p,q)){ return false; } return true; } public boolean compare(TreeNode p, TreeNode q){ if(p == null && q == null){ return true; }else if(p != null && q != null){ if(p.val == q.val){ if(compare(p.left,q.left)){ if(compare(p.right,q.right)){ return true; } } } } return false; } }
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解