Skip to content

Commit 53cae95

Browse files
committed
add some questions
1 parent 45f55a4 commit 53cae95

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// 输入两个整数序列,
2+
// 第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。
3+
// 例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,
4+
// 但4,3,5,1,2就不可能是该压栈序列的弹出序列。
5+
// (注意:这两个序列的长度是相等的)
6+
7+
function IsPopOrder(pushV, popV)
8+
{
9+
// write code here
10+
var a = []
11+
if(popV.length==0&&pushV.length==0){return true}
12+
var i=0,j=0
13+
while(i<pushV.length){
14+
a.push(pushV[i++])
15+
while(j<popV.length&&a[a.length-1]== popV[j]){
16+
a.pop()
17+
++j
18+
}
19+
}
20+
return a.length==0
21+
}
22+
23+
//思路 建立一个辅助栈
24+

units/interview/树的子结构.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// 树的遍历我们一般可以用递归做
2+
// 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构
3+
4+
5+
function HasSubtree(pRoot1, pRoot2)
6+
{
7+
// write code here
8+
if(!pRoot1||!pRoot2){return false}//若两棵树中的一个根节点为空,就返回false
9+
return IsSubtree(pRoot1,pRoot2)||HasSubtree(pRoot1.left,pRoot2)||HasSubtree(pRoot1.right,pRoot2)
10+
//判断从pRoot1和pRoot2开始子树是否完全相同,若相同就结束程序。
11+
//当pRoot1和pRoot2不完全匹配时,判断A的左子树是否包含B,若包含就返回true,结束程序。
12+
//当A的左子树不包括B时,判断A的右子树是否包含B。
13+
}
14+
function IsSubtree(pRoot1,pRoot2){
15+
if(!pRoot2){return true}//若B的节点匹配完毕,就结束判断,返回true
16+
if(!pRoot1){return false}//若A的节点为空,就返回false,因为B的节点非空
17+
if(pRoot1.val==pRoot2.val){//若两者相等,就继续判断子节点是否一致。
18+
return IsSubtree(pRoot1.left,pRoot2.left)&&IsSubtree(pRoot1.right,pRoot2.right);
19+
}else{
20+
return false//当节点不一致时,就返回false。
21+
}
22+
}

0 commit comments

Comments
 (0)