zoukankan      html  css  js  c++  java
  • LintCode-245.子树

    子树

    有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。

    注意事项

    若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。

    样例

    下面的例子中 T2 是 T1 的子树:

    下面的例子中 T2 不是 T1 的子树:

    标签

    递归 二叉树

    code

    /**
     * Definition of TreeNode:
     * class TreeNode {
     * public:
     *     int val;
     *     TreeNode *left, *right;
     *     TreeNode(int val) {
     *         this->val = val;
     *         this->left = this->right = NULL;
     *     }
     * }
     */
    class Solution {
    public:
        /**
         * @param T1, T2: The roots of binary tree.
         * @return: True if T2 is a subtree of T1, or false.
         */
        bool isSubtree(TreeNode *T1, TreeNode *T2) {  
             bool result  = false;  
            if (T2 == NULL) {  
                return true;  
            }  
            if (T1 == NULL) {  
                return false;  
            }  
            // write your code here  
            if (T1->val == T2->val) {  
                 result = isTree1HasTree2(T1,T2);  
            }  
            if (!result) {  
              result =  isSubtree(T1->left,T2);  
            }  
            if (!result) {  
                result =  isSubtree(T1->right,T2);  
            }  
            return result;  
        }  
          
        bool isTree1HasTree2 (TreeNode *T1, TreeNode *T2) {  
          
            if (T1 != NULL && T2!=NULL && T1->val == T2->val) {  
                return isTree1HasTree2(T1->left,T2->left) && isTree1HasTree2 (T1->right,T2->right);  
            }  
            if (T1 == NULL && T2 == NULL) {  
                return true;  
            }  
            return false;  
        }  
    };
  • 相关阅读:
    怎样提高开发效率
    ASP.NET/C#获取文章中图片的地址
    listBox的用法
    ASP.NET中的asp:label和asp:literal
    ID,ClientID,UniqueID的区别
    asp.net中的属性
    数据库中的值为空的判断 ,并赋初值
    属性器,转换从数据库中读取的状态
    Collections.emptyList() and Collections.EMPTY_LIST
    InnoDB
  • 原文地址:https://www.cnblogs.com/libaoquan/p/6806701.html
Copyright © 2011-2022 走看看