#!/bin/bash dirpath=$1 function read_dir() { for file in `ls $1` do #echo "$1:"$1 if [ -d $1/$file ];then cd $1/$file read_dir $1"/"$file cd - else ec ...
分类:
系统相关 时间:
2020-02-15 15:03:50
阅读次数:
68
题解:我们可以发现镜像后的树就是将原树的所有节点的左右儿子互换!所以我们递归遍历原树的所有节点,将每个节点的左右儿子互换即可。 我:用递归可以遍历树的所有节点,那怎么递归? /** * Definition for a binary tree node. * struct TreeNode { * ...
分类:
其他好文 时间:
2020-02-14 21:00:25
阅读次数:
71
本题要求用非递归的方法实现对给定二叉树的 3 种遍历。 函数接口定义: void InorderTraversal( BinTree BT ); void PreorderTraversal( BinTree BT ); void PostorderTraversal( BinTree BT ); ...
分类:
其他好文 时间:
2020-02-13 14:40:31
阅读次数:
95
最开始想的方法用一个vector存下这颗树的中序遍历,然后看这个vector是否严格升序。这里空间复杂度高了,实际上在递归遍历 二叉树的时候,设定好每个节点的上界和下界,在界限内就ok了,正常递归就可以了。 AC代码: class Solution { public: // 加一个界限 bool i ...
分类:
其他好文 时间:
2020-02-12 18:50:54
阅读次数:
73
二叉树的递归遍历很容易写出来,对于递归遍历则需要借助辅助栈,并且不同的遍历次序迭代的写法也不尽相同,这里整理一些二叉树迭代遍历的实现 二叉树的前序遍历 [leetcode144]:https://leetcode cn.com/problems/binary tree preorder traver ...
分类:
其他好文 时间:
2020-02-11 00:35:37
阅读次数:
73
import osimport collectionsdef getAllDirQU(path): queue = collections.deque() #进队 queue.append(path) while len(queue) != 0: #出队数据 dirPath = queue.popl ...
分类:
编程语言 时间:
2020-02-08 13:37:50
阅读次数:
98
树其实在本质上就是一对多,链表就是一对一。 二叉树的建立: 这里的代码采用的是最粗暴的创建方法,无实际用处。但初次学习二叉树可以通过这个创建方法更好的理解二叉树。 二叉树的遍历: 遍历在大体上分为递归遍历和非递归遍历。 遍历总共三种遍历顺序: 1.先序遍历:根,左,右 2.中序遍历:左,根,右 3. ...
分类:
编程语言 时间:
2020-02-01 00:49:01
阅读次数:
99
思路分析: 二叉树的题第一反应是应用递归遍历。 判断一棵平衡二叉树的依据是:1.结点的左右子树的深度是平衡二叉树,2.左子树的深度与右子树的深度的差不超过1 若所有的结点都符合这两条件则该树是一平衡二叉树。 利用“与”实现遇到错返回false,全部正确才返回true(之前一直不懂,终于清楚了) ...
分类:
编程语言 时间:
2020-01-31 12:08:46
阅读次数:
58
6.1什么是递归 递归: 如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意: 递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。 6.2 利用递 ...
分类:
其他好文 时间:
2020-01-24 12:04:55
阅读次数:
91
94.二叉树的中序遍历 递归遍历 迭代遍历 莫里斯遍历 莫里斯遍历主要思想是将中间根节点放到左子树的最右侧节点。 可以从运行时间和使用内存看出来,确实莫里斯遍历要由于普通迭代。 ...
分类:
其他好文 时间:
2020-01-19 09:22:01
阅读次数:
95