题解 | #树的子结构#

树的子结构

http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88

这道题其实不难,但是我一直在纠结
{8,8,#,9,#,2,#,5},{8,9,#,2}
是怎么个树结构?

原来是:

      8
     8 #
    9 #
   2 #
  5

解题思路就是利用递归,坑点就是注意null值的判断,直接看下面代码吧,比较简单。

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;
    }

}
*/
public class Solution {
    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if (root2 == null || root1 == null) {
            return false;
        }
        if (root1.val == root2.val) {
            boolean leftSame = false;
            if (root2.left == null) {
                leftSame = true;
            } else {
                leftSame = HasSubtree(root1.left, root2.left);
            }
            boolean rightSame = false;
            if (root2.right == null) {
                rightSame = true;
            } else {
                rightSame = HasSubtree(root1.right, root2.right);
            }
            if (leftSame && rightSame) {
                return true;
            }
        }
        return HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2);
    }     
}
全部评论

相关推荐

09-16 14:01
井冈山大学 Java
肖先生~:兄弟们,我发的她都点赞了,但是就是不给我微信
秋招被确诊为……
点赞 评论 收藏
分享
10-25 22:20
门头沟学院 Java
代码飞升:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务