详细见:leetcode.com/problems/same-tree
Java Solution: github
package leetcode;
import tools.TreeNode辅助.TreeNode;
public class P100_SameTree {
public static void main(String[] args) {
}
/*
* 0 ms
* 11.51%
*/
static class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null)
return true;
if (p == null || q == null || p.val != q.val)
return false;
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}
}
C Solution: github
/*
url: leetcode.com/problems/same-tree
AC 0ms 57.14%
*/
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
if (p == NULL || q == NULL)
return p == NULL && q == NULL;
if (p->val != q->val) return 0;
return isSameTree(p->left, q->left) &&
isSameTree(p->right, q->right);
}
Python Solution: github
#coding=utf-8
'''
url: leetcode.com/problems/same-tree
@author: zxwtry
@email: zxwtry@qq.com
@date: 2017年4月26日
@details: Solution: 72ms 2.26%
'''
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def isSameTree(self, p, q):
"""
:type p: TreeNode
:type q: TreeNode
:rtype: bool
"""
if p == None or q == None:
return p == None and q == None
if p.val != q.val: return False
return self.isSameTree(p.left, q.left) \
and self.isSameTree(p.right, q.right)