Skip to content

Instantly share code, notes, and snippets.

@terracotta-ko
Created April 7, 2018 14:32
gist for leetcode 572
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSubtree(TreeNode s, TreeNode t) {
return traverse(s,t);
}
private boolean traverse(TreeNode s, TreeNode t) {
return s != null && (equal(s,t) || traverse(s.left, t) || traverse(s.right,t));
}
private boolean equal(TreeNode sNode, TreeNode tNode) {
if(sNode == null && tNode == null) {
return true;
}
else if(sNode == null || tNode == null) {
return false;
}
return sNode.val == tNode.val && equal(sNode.left, tNode.left) && equal(sNode.right, tNode.right);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment