Advertisement

判断一棵树是否为另一棵树的子树

阅读量:

设定s为大树,t为小树。对于两个非空的二叉树s与t,需判断s中是否存在与t在结构及节点值方面完全一致的子树。此处所指的子树包含s中的某节点及其所有后代节点。同时,s本身也可视为其自身的子树。
题目链接:https://leetcode-cn.com/problems/subtree-of-another-tree/
解题思路:

  1. 若两棵树均为空,则判定结果为真
  2. 当其中一棵为空而另一棵不为空时,则判定结果为假
  3. 若两棵树均不为空
    a)首先验证根节点的值是否一致,若一致,则进一步判断s与t是否为结构相同的树
    b)递归判断t是否被包含于s的左子树之中
    c)递归判断t是否被包含于s的右子树之中。

具体实现代码

复制代码
    /** * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
    //判断是否相等的方法
    public boolean

全部评论 (0)

还没有任何评论哟~