572. 另一个树的子树
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
function isSame(treeA: TreeNode | null, treeB: TreeNode | null): boolean { if (treeA === null && treeB === null) return true if ( (treeA === null && treeB !== null) || (treeA !== null && treeB === null) ) return false return treeA.val === treeB.val && isSame(treeA.left, treeB.left) && isSame(treeA.right, treeB.right) }
function isSubtree(root: TreeNode | null, subRoot: TreeNode | null): boolean { let res = false function traverse(node: TreeNode | null) { if (node === null) return if (node.val === subRoot.val && !res) { res = isSame(node, subRoot) if (res) { return } } traverse(node.left) traverse(node.right) } traverse(root) return res };
|