来源:https://leetcode-cn.com/problems/count-complete-tree-nodes/ 法一: 自己的代码 思路: 刚开始的方法多遍历了一行,改进后的,只需遍历到最后一行就停,这是由完全二叉树的性质决定的,注意层序遍历二叉树的时候,这里不能用栈来实现,必须用队列 ...
分类:
其他好文 时间:
2019-12-07 21:27:14
阅读次数:
90
宽度优先搜索,层序遍历各节点,并记录各节点所在层,时间复杂度 O(n)。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode ...
分类:
其他好文 时间:
2019-11-28 23:06:15
阅读次数:
119
20182320《程序设计与数据结构》第十周学习总结 教材学习内容总结 1.图的概念 关于图的概念,老师在课堂上已经较为详细地说明过了,因此不再赘述。 重要的概念有:无向图、有向图、顶点、边…… 2.图的遍历 2.1 广度优先遍历 2.1.1 概念 与树的层序遍历相似,按照路径长度由小到大的顺序,优 ...
分类:
其他好文 时间:
2019-11-27 23:31:10
阅读次数:
106
堆排其实就是选择排序,只不过用了完全二叉树特性。 堆排思想 : 利用完全二叉树特性建堆和重复选择调整来得到有序数组。 完全二叉树有什么特性呢? 节点左对齐 > 层序遍历不会出现空,可以用数组表达(访问效率高) 那么可以将它映射到数组上,并且遵循一个规律: 设i为当前节点索引, i->left = 2 ...
分类:
其他好文 时间:
2019-11-16 17:58:48
阅读次数:
137
理论部分 图的深度遍历和广度遍历都不算很难像极了二叉树的前序遍历和层序遍历,如下面的图,可以用右边的邻接矩阵进行表示,假设以顶点0开始对整幅图进行遍历的话,两种遍历方式的思想如下: 1. 深度优先遍历(depthFirstSearch—DFS) 由初始顶点开始,沿着一条道一直走,当走到走不动的时候, ...
分类:
其他好文 时间:
2019-11-10 15:14:25
阅读次数:
98
非递归遍历 前序遍历 https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ 中序遍历 后序遍历 层序遍历 递归遍历 递归遍历的规律:无论何时push_back的都是当前的跟结点,遇到左右结点,都是继续递归遍历。 前序遍历 1 ...
分类:
其他好文 时间:
2019-10-19 21:11:16
阅读次数:
109
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题解: 就是简单的层序遍历 1 class Solution { 2 public: 3 vector<int> PrintFromTopToBottom(TreeNode* root) { 4 vector<int>res; 5 B ...
分类:
其他好文 时间:
2019-10-15 22:47:35
阅读次数:
91
题意:给定一棵树,求其层序遍历序列。(以vector<vector<int>>形式返回) 解题思路: ...
分类:
其他好文 时间:
2019-10-06 13:37:31
阅读次数:
75
LeetCode树模板 TreeNode 先序遍历 层序遍历 中序遍历 LeetCode 100 相同的树 这种递归形式几乎算是树的基本模板,三条件并列的尾递归。 LeetCode 101 对称二叉树 先序遍历一次左子树,交换先序遍历的左右子节点顺序遍历一次右子树,比较两次遍历得到的序列。 用不可能 ...
分类:
其他好文 时间:
2019-09-27 22:44:07
阅读次数:
121