树的子结构
2018-10-12 本文已影响0人
我的天气很好啦
🍞环境:牛客的编译环境
🍰语言:JavaScript
☕️难点:
- 存储二叉树的遍历不熟,还在网上搜了一下怎么遍历。
- JS里string方法的indexOf的拼写规范
- JS数组和字符串的转换还是不太熟,需要百度查一下方法
🍊题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
🍎思路:我想把两棵树都用先序遍历的方法放在数组里,然后将数组转换成字符串,再利用字符串的方法去看是否包含。
🍇代码:
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
/*先序遍历*/
function preOrder(tmp,arr){
arr.push(tmp.val);
if(tmp.left != null)
preOrder(tmp.left,arr);
if(tmp.right != null)
preOrder(tmp.right,arr);
}
function HasSubtree(pRoot1, pRoot2)
{
// write code here
if(pRoot2 == null)
return false;
if(pRoot1 == null && pRoot2 != null)
return false;
var arrc = [],
arrf = [];
preOrder(pRoot1,arrf);
preOrder(pRoot2,arrc);
if(arrf.join().includes(arrc.join()))
return true
else
return false;
}