第一次接触树,通过学习整理了一下内容: 基本概念 定义:树形结构是一种非线性结构,它的特点是:每个结点最多只有一个前驱,但可以有多个后继。 如图我们可以做以下解释 双亲和孩子 : 若a是b的前驱,则称a是b的双亲,b是a的孩子。 兄弟: 若b和c有共同的前驱,则称b和c互为兄弟。 分支结点和终端结点 ...
分类:
其他好文 时间:
2021-02-09 11:52:57
阅读次数:
0
仅供自己学习 题目: Invert a binary tree. Example: Input: 4 / \ 2 7 / \ / \1 3 6 9Output: 4 / \ 7 2 / \ / \9 6 3 1 思路: 这就是直接交换数据就可以了,可以前序遍历,后序遍历,中序遍历的交换 代码: 前序 ...
分类:
其他好文 时间:
2021-02-04 11:44:27
阅读次数:
0
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方式分别为:先序遍历、中序遍历、后序遍历。二叉树前序遍历:根-> 左-> 右;二叉树中序遍历:左->... ...
分类:
其他好文 时间:
2021-02-02 10:39:44
阅读次数:
0
下面直接上代码*(我是直接用的for循环初始化开始做的,也可以使用递归解决)* 这是树节点类 package com.edu.dataStructure.treeDemo; import java.util.*; /** * <p> * 自己创建的树节点 * </P> * */ public cla ...
分类:
编程语言 时间:
2021-01-30 12:16:45
阅读次数:
0
题意 将一个二叉树转换为它的镜像树 思路 很容易想到镜像树是要交换左右孩子,而且是递归式的,也就是说还要对它的左孩子和右孩子这么做。 本质是对遍历算法的理解,显然这里是用后序遍历比较合理的,后序遍历是左右根的顺序,也就是遍历到当前根结点的时候左右子树都已经遍历过也处理好了(翻转为镜像) 代码 cla ...
分类:
其他好文 时间:
2021-01-29 12:07:31
阅读次数:
0
590. N叉树的后序遍历 //给定一个 N 叉树,返回其节点值的后序遍历。 // // 例如,给定一个 3叉树 : // // // // // // // // 返回其后序遍历: [5,6,3,2,4,1]. // // // // 说明: 递归法很简单,你可以使用迭代法完成此题吗? Relat ...
分类:
其他好文 时间:
2021-01-13 11:04:17
阅读次数:
0
给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? C 代码 ...
分类:
其他好文 时间:
2021-01-08 11:18:58
阅读次数:
0
#include<iostream> #include<vector> using namespace std; vector<char>post,in; vector<char>level(100000,-1); in N; void ergodic(int root,int start,int ...
分类:
编程语言 时间:
2021-01-05 11:40:19
阅读次数:
0
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 ...
分类:
其他好文 时间:
2021-01-05 11:32:09
阅读次数:
0
前序 class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; if (root == nullptr) { return res; } stack<TreeNode*> stk ...
分类:
其他好文 时间:
2021-01-01 12:36:16
阅读次数:
0