题解 | #树的子结构#

树的子结构

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);
    }     
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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