51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#叉树
二叉树遍历(先序、中序、后序)
二叉树的相关概念二叉树的定义二叉树(BinaryTree)是n(n>=0)个有限元素的集合,该集合或者为空,或者由一个称为根(root)的元素及两个不相交的,被称为左子树和右子树的二叉树组成。当集合为空时,称该二叉树为空二叉树,在二叉树中,一个元素也称为一个结点。二叉树是有序的,即若将其左右子树颠倒,就称为另一颗...
代码星球
·
2020-08-09
二叉
遍历
先序
中序
后序
反转二叉树 打印二叉树
代码:packagecom.qhong;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.Queue;publicclassMain{publicstaticvoidmain(String[]args){TreeNoderoot=n...
代码星球
·
2020-08-09
二叉
反转
打印
面试题21:从上往下打印二叉树
代码: #include"stdafx.h"#include<iostream>#include<deque>usingnamespacestd;structBinaryTreeNode{intm_nValue;BinaryTreeNode*m_pLeft;BinaryTreeNode...
代码星球
·
2020-08-09
试题
从上往下
打印
二叉
编程之美读书笔记---分层遍历二叉树
层序遍历一颗二叉树。给定一颗二叉树如下:输出结果:12345678给出书上的两种实现: #include<iostream>#include<cstring>#include<vector>usingnamespacestd;structnode{intdata;node*...
代码星球
·
2020-08-09
编程
之美
读书
笔记
分层
LeetCode559 N叉树的最大深度
题目: 思路:直接递归求解最大深度就可以,这里主要记录一下Java中比较获得两个数中最大值的方法。importjava.math.*;classSolution{publicintmaxDepth(Noderoot){if(root==null){return0;}intdeep=0;for(in...
代码星球
·
2020-07-18
LeetCode559
叉树
最大
深度
7-4 交换二叉树中每个结点的左孩子和右孩子 (20 分)
题目:以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。思路:首先根据给出的字符串先把二叉树建起来,这里稍稍卡了一下(所以决定写个博客存一下);建起来后就好说了,递归交换左右子树;然后递归中序遍历就ok了!代码:#include<bits/stdc++.h>#include<cst...
代码星球
·
2020-07-18
孩子
交换
二叉
树中
每个
构造二叉树,并求解树的高度
一,问题描述在控制台上输入一组数据,请按照输入的数据的格式来构造一棵二叉树,并打印出二叉树的高度。输入的数据格式如下:第一行为一个整数N(其实是二叉树中边的数目),表示接下来一共有N行输入,每行输入有两个数,左边的数表示父结点,右边的数表示父结点的孩子结点。示例如下:6010213242546从上面的输入可以看出:①根...
代码星球
·
2020-07-09
构造
二叉
求解
高度
按之字形打印二叉树
一,问题描述请构造一棵二叉树,并按照“之字形”顺序打印这棵二叉树。所谓“之字形”打印,第一行是从左到右打印,第二行是从右到左打印,第三行又是从左到右打印....即,奇数行(根为第一行)是从左到右打印,而偶数行是从右到左打印。如上图:该二叉树的打印顺序为:2030 ...
代码星球
·
2020-07-09
之字形
打印
二叉
对称二叉树
递归写法functionhelp(root){returnisSymmetric(root,root);}functionisSymmetric(node1,node2){//判断两个节点都是否为空if(!node1&&!node2){returntrue;}//判断两个节点不相等if(!node1||...
代码星球
·
2020-06-29
对称
二叉
多叉树到指定节点的路径
基本上是使用深度优先遍历的套路,以下方法获取的是沿途的所有节点exportfunctiongetPathNodesByKey(root,stack,fCompare){letb=false;if(root!=null){stack.push(root);if(fCompare(root)){returntrue}var...
代码星球
·
2020-06-29
多叉
指定
节点
路径
二叉树节点个数,叶子个数,第K层个数,最低公共节点
1.节点个数functiongetNodeNum(root){if(root==null){return0;}//+1为root的计数returngetNodeNum(root.left)+getNodeNum(root.right)+1;}2.叶子个数functiongetLeafNum(root){if(root=...
代码星球
·
2020-06-28
个数
二叉
树节点
叶子
最低
二叉树最大距离(直径)
方法一计算每个节点的左子树和右子树的高度和,加上根本身(边数为2),取最大值二叉树的最大距离,一定是经过根或者某个子树的根的路径,其两个端点必然是叶子节点或者根节点。计算二叉树的高度,并且比较经过该节点的最大距离,取最大者。其中,getTreeDistance的起点是-1,其值为二叉树的高度减1,即高度路径上的点之间的...
代码星球
·
2020-06-28
二叉
最大
距离
直径
二叉树的创建,插入,查找,清空和比较
二叉树的结构functionTreeNode(){this.val=val;this.left=null;this.right=null;}二叉树的创建functioncreateBTree(aVal,fPredicate,pos){varnode={};pos=pos||0;if(fPredicate(aVal,po...
代码星球
·
2020-06-28
二叉
创建
插入
查找
清空
二叉树的最小高度,最大高度(深度)和宽度
最大高度functiongetMaxHeight(root){if(root==null)return0;return1+Math.max(getMaxHeight(root.left),getMaxHeight(root.right));}最小高度functiongetMinHeigth(root){if(!root...
代码星球
·
2020-06-28
高度
二叉
最小
最大
深度
二叉树的深度优先遍历和广度优先遍历
1.二叉树的深度优先遍历,使用栈Stack,DFS(DepthFirstSearch)functionDFS(root){varstack=[];stack.push(root);varnode=null;while(stack.length){node=stack.pop();//visitnode.data;if(...
代码星球
·
2020-06-28
优先
遍历
二叉
深度
广度
首页
上一页
...
3
4
5
6
7
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他