offer23专题

剑指Offer23从上往下打印二叉树

题目: 从上往下打印出二叉树的每个结点,同一层的结点按照从左往右的顺序打印。 没有难度的一个题,广搜的直接形式,就是用队列。直接列代码了。 void PrintBinaryTreeFromTopToBottom(BinaryTreeNode * pNode){if(pNode == NULL)return ;queue<BinaryTreeNode*>que;que.push(pNod

剑指offer23 判断是否为二叉搜索树的后序遍历

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 总结:后序遍历特征:最后一个为根节点,从第一个数字开始直到第一个比根节点大的数字都是左子树,后面都是右子树都应该比根节点大一旦有小的就判断不是,程序里用到了不设置初始值的循环。一般搜索树都是用递归。 class Solution {publi

剑指offer23——链表中环的入口节点

判断单链表中有没有环,如果有找到环的入口节点。   三个问题: 1、如何确定链表中包含环:两个指针,一个指针一次走一步,一个指针一次走两步。如果走得快的指针追上了走得慢的指针,则说明链表包含环; 如果走得快的指针走到了链表末尾(p->next == NULL)都没有追上第一个指针,则无环。 2、如何找到环的入口:定义两个指针p1,p2指向头结点,如果环有n个结点, 则p1先移动n步,然后两