一、二叉树基本知识 二、二叉树先序遍历 题目: 输入一个整数n,表示二叉树中结点个数,编号为1~n。1号结点为二叉树的根节点。然后输入n行,每行包括两个整数,第i行表示编号为i的结点的左、右子节点的编号。如果某个结点没有左或右子节点,那么对应行的第一、二个整数为0。输出此二叉树的先序遍历,每行输出一 ...
分类:
其他好文 时间:
2020-08-26 18:33:00
阅读次数:
50
题目 给定一个二叉树,返回它的中序 遍历。 实现 # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def inorderTraversal(self, roo ...
分类:
其他好文 时间:
2020-08-15 22:23:27
阅读次数:
69
题目描述: 给定一个二叉树,返回它的中序 遍历。 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] //go //* Definition for a binary tree node. type TreeNode struct { Val int Left *TreeN ...
分类:
其他好文 时间:
2020-08-06 09:31:39
阅读次数:
66
先序遍历与中序遍历的代码实现是差不多的 只是把访问节点的操作放到了入栈操作前 代码实现: #include <stdio.h> #include <string.h> #include <stdlib.h> #define ElementType char int top = -1; //定义top ...
分类:
其他好文 时间:
2020-07-31 18:04:02
阅读次数:
118
题目引出的思考: 前面学习中,一般都是需要前序+中序或者后序+中序才能构建出一颗二叉树,故本道题中一开始并未给出中序遍历,心中疑惑便出,是否该二叉树不唯一?再细看是二叉排序树,仔细分析显然可得二叉排序树中的中序遍历必然是递增的,故排除自己的错误想法。 证明: 如果一棵非空二叉树(所有结点值均不相同) ...
分类:
编程语言 时间:
2020-07-30 14:49:05
阅读次数:
129
思路: 中序:左->根->右 1.需要一个建立一个栈,首先将左子树放入栈中 2.获取栈顶元素并进行节点判断是否有右子树 3. 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode ...
分类:
其他好文 时间:
2020-07-27 23:50:51
阅读次数:
62
二叉排序树 二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。 二叉排序树创建和遍历 ? 一个数组创建成对应的二叉排序树,并使用中序遍历二叉排序树 使用中序遍历的二叉树结点 ...
分类:
编程语言 时间:
2020-07-27 09:35:38
阅读次数:
81
题目:传送门 方法一、递归 中序遍历:先遍历左子树,在遍历根节点,最后遍历右子树。比较经典的方法是递归。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeN ...
分类:
其他好文 时间:
2020-07-26 15:32:51
阅读次数:
67
用C/C++编写二叉树的前序遍历,中序遍历,后序遍历(递归) 使用辅助队列的层序遍历(非递归) 特别说明一下层次遍历:借助一个队列,先将二叉树根结点入队,然后出队,访问出队结点,若它有左子树,则将左子树根结点入队;若它有右子树,则将右子树树根结点入队。然后出队,访问出队结点.......如此反复,直 ...
分类:
其他好文 时间:
2020-07-23 16:22:22
阅读次数:
66