- 博客(4)
- 收藏
- 关注
原创 剑指offer-树专题总结
常见技巧 1、与二叉树有关的代码有大量指针操作,每次使用指针的时候,都要问自己有没有可能为nullptr,如果是该怎么处理。 2、如果面试题要求处理一棵树的遍历序列,可先找到二叉树的根节点,再基于根节点将序列拆分为左子树对应的子序列和右子树对应的子序列,接下来再递归的处理两个子序列。 3、几乎全是考察树的遍历 4、大部分题目可用递归解题:递归函数的组织方式一般是,当前节点怎么考虑,左子树递归,右子...
2020-04-02 21:10:58
150
原创 剑指offer-链表专题总结
常见技巧 1、在单链表首元节点前加一个“头节点”,头指针指向头节点。 好处在于: 防止链表空时头指针为空 插入/删除 首元节点,操作与其他节点一致 使空链表和非空链表操作一致 2、指针差法:用一个指针遍历不行的时候,可以考虑两个指针遍历。 可以让其中一个快一些(比如一次走两步),或者让它先走若干步。 3、删除节点不一定要获得前一个节点,复制后一个节点过来,再删掉后面也行 4、递归也常用 01 面试...
2020-03-31 23:15:39
151
原创 树的遍历
先序递归非递归,中序递归非递归,后序递归(非递归比较复杂,风格和前两种不统一),层次遍历** #include <cstdio> #include <iostream> #include <stack> #include <queue> using namespace std; //节点结构体 struct BinaryTreeNode { ...
2020-03-29 22:48:55
104
原创 6种排序算法代码及详细注释
冒泡,选择,插入,归并,快速,堆排序代码及其注释 #include <iostream> using namespace std; int N=10; void bubbleSort(int* arr, int N); //1、冒泡排序 void exchange(int* arr, int a, int b); //交换两个元素 void selectSo...
2020-03-28 12:17:24
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人