1. 深度优先遍历 使用场景:常见于各种组合,树遍历,前序遍历、中序遍历、后续遍历 private void dfs(int[] arr, int target,int begin, Deque<Integer> path, Set<List<Integer>> res) { if ( path.s ...
分类:
编程语言 时间:
2020-10-26 10:56:27
阅读次数:
26
先序遍历 Stack<TreeNode> stk = new Stack<>(); stk.push(root); while (!stk.empty()) { TreeNode cur = stk.pop(); if (cur != null) { // visit cur stk.push(cu ...
分类:
其他好文 时间:
2020-10-19 22:18:07
阅读次数:
24
题目链接 530. 二叉搜索树的最小绝对差 题目描述 解题思路 1.利用中序遍历把树转为有序数组,然后在数组上求两个相邻数字的最小值。 2.同样采用中序遍历,可以直接在递归遍历的过程中记录相邻数字的最小值。 3.因为题目给的树是二叉排序树,所以中序遍历的结果一定是一个有序数组,所以两个数的差的最小值 ...
分类:
其他好文 时间:
2020-10-12 20:05:23
阅读次数:
15
题意:给定n个数构建完全二叉树,输出完全二叉树的层序遍历 思路:二叉树的中序遍历建树即为输出 #include<cstdio> #include<queue> #include<vector> #include<algorithm> using namespace std; const int N ...
分类:
其他好文 时间:
2020-09-17 23:04:06
阅读次数:
30
Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 ...
分类:
编程语言 时间:
2020-09-17 13:57:32
阅读次数:
29
一、试写一个判别给定二叉树是否为二叉排序树的算法,设此二叉树以二叉链表作存储结构,且树中结点的关键字均不同。 答: 由分析可以知道,通过教材所学的知识我们很容易知道二叉排序树的特点。按照中序遍历的顺序,应当符合当前遍历到的节点值大于前一个遍历到的节点值,所以我们最终得到的中序遍历序列是一个有序序列, ...
分类:
编程语言 时间:
2020-09-03 16:43:50
阅读次数:
48
一、二叉树基本知识 二、二叉树先序遍历 题目: 输入一个整数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