剑指offer
文章平均质量分 86
Vincentlmeng
这个作者很懒,什么都没留下…
展开
-
二叉树遍历和相关知识
二叉树有几种遍历方式: 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 (a) 前序遍历:1 2 4 8 5 3 6 7 中序遍历:8 4 2 5 1 6 7 3 后序遍历:8 4 5 2 6 7 3 11、二叉树的深度。 输入一颗二叉树的根结点,求该树的深度。/* struct TreeNode { int val;原创 2017-03-27 21:15:02 · 330 阅读 · 0 评论 -
C++中可以用struct和class来定义类型,这两种类型有什么区别
如果没有标明成员函数或者成员变量的的访问权限级别,在struct中默认的是public,而在class中默认的是private。 在C#中。struct和class有什么区别? C#和C++不一样,在C#中如果没有标明成员函数或者成员变量的访问权限级别,struct和class 都是private的。struct和class的区别是struct定义的是值类型,值类型的实例在栈上分配内存;而cla原创 2017-03-23 15:51:02 · 1822 阅读 · 0 评论 -
二维数组中的查找
题目:在一个数组中每一行都按照从左到右递增顺序排序,每一列按照从上到下的顺序排序。请完成一个函数,输入这样的二维数组和一个整数,判断数组中是否含有该整数。 思路: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 这是一个已经排序好的数组,可以从右上角或者右下角开始查找。 分析所有可能出现的情况:原创 2017-03-24 10:36:10 · 286 阅读 · 0 评论 -
剑指offer:面试4从尾到头打印链表
通常打印是一个只读操作,我们不希望打印时修改内容,假设这个题目不能改变链表的结构。 利用栈的先进后出特点,遍历链表进栈,然后利用vector.push_back()从尾部插入节点,将栈顶的值依次插入到vector尾。最后返回vector就可以得到从尾到头的链表。 例如输入:1 2 3 4 5 输出:5 4 3 2 1 /*** struct ListNode {*原创 2017-03-25 10:56:01 · 281 阅读 · 0 评论 -
静态联编和动态联编虚函数
在《C++Primer Plus》第13章类继承中有过详细的说明。通常,编译器处理虚函数的方法是:给每一个对象添加一个隐藏成员。隐藏成员中保存了一个只想函数地址数组的指针。这种数组成为虚函数表(vtable)。虚函数表中存储了为类对象进行声明的虚函数的地址。例如基类对象包含一个指针,则该指针指向的是基类中所有虚函数的地址表。 派生类对象将包含一个指向独立地址表的指针。如果派生类为虚函数提供了新的定原创 2017-03-24 10:28:36 · 837 阅读 · 0 评论