leetcode -572. Subtree of Another Tree 【树比较(结构、值)】

xiaoxiao2021-02-28  120

题目

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.

题意

给定两个非空的二叉树s , t 。判断t 是否准确存在于s中(结构和值都相同),即是s的子树。此处的子树定义为,s的一个结点以及该结点的所有后代。(s本身也可以看做自己的后代)

分析及解答

public class Solution { public boolean isSubtree(TreeNode s, TreeNode t) { if (s == null) return false; if (isSame(s, t)) return true; return isSubtree(s.left, t) || isSubtree(s.right, t); } private boolean isSame(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 isSame(s.left, t.left) && isSame(s.right, t.right); } }

转载请注明原文地址: https://www.6miu.com/read-18180.html

最新回复(0)