摘要:
【题目】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 【思路】借用一个辅助的栈,遍历压栈顺序,先讲第一个放入栈中,这里是1,然后判断栈顶元素是不是出栈顺序的第一个元素,这里是4,... 阅读全文
摘要:
【题目】输入两颗二叉树A,B,判断B是不是A的子结构。 【思路】要查找树A中是否存在和树B结构一样的子树,可以分成两步: 第一步在树A中找到和B的根节点的值一样的结点R; 第二步再判断树A中以R为根结点的子树是不是包含和树B一样的结构。 第一步在树A中查找与根结点的值一样的结点,这实际上就是树的遍历。递归调用HasSubTree遍历二叉树A。如果发现某一结点的值和树B的头结... 阅读全文