LeetCode 572. Subtree of Another Tree

来源:互联网 发布:python上传图片步骤 编辑:程序博客网 时间:2024/06/06 00:52

Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself.

Example 1:
Given tree s:

     3    / \   4   5  / \ 1   2
Given tree t:
   4   / \ 1   2
Return true, because t has the same structure and node values with a subtree of s.

Example 2:
Given tree s:

     3    / \   4   5  / \ 1   2    /   0
Given tree t:
   4  / \ 1   2

Return false.

java

/** * 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) {        if (s == null) {            return false;        }        if (isSub(s, t)) {            return true;        }        return isSubtree(s.left, t) || isSubtree(s.right, t);    }    private boolean isSub(TreeNode s, TreeNode t) {        if (s == null && t == null) {            return true;        }        if (s == null || t == null) {            return false;        }        if (s.val != t.val) {            return false;        }        return isSub(s.left, t.left) && isSub(s.right, t.right);    }}


原创粉丝点击