作者: Turbo时间限制: 1S章节: DS:树 晚于: 2020-08-05 12:00:00后提交分数乘系数50% 截止日期: 2020-08-12 12:00:00 问题描述 : 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替 ...
分类:
其他好文 时间:
2020-09-17 18:32:43
阅读次数:
33
Pre- and Post-order Traversals PAT-1119 这题难度较大,主要需要考虑如何实现根据前序遍历和后序遍历来确定一颗二叉树 一篇好的文章: 题解 import java.util.Scanner; /** * @Author WaleGarrett * @Date 20 ...
分类:
其他好文 时间:
2020-09-17 15:39:34
阅读次数:
20
Complete Binary Search Tree PAT-1064 本次因为涉及到完全二叉排序树,所以可以使用数组的形式来存储二叉排序树 对输入序列排序后,得到的是中序遍历二叉排序树的序列。对这颗二叉排序树进行中序遍历,将每个结点的值放入二叉树的存储数组中,最后遍历数组即可求出层次遍历的序列。 ...
分类:
编程语言 时间:
2020-09-17 13:57:32
阅读次数:
29
二叉堆是一种完全二叉树,我们可以使用列表来方便存储,也就是说,用列表将树的所有节点存储起来。 如下图,是小根堆方式的二叉堆,假设父节点的下标为p,则他的左孩子下标为2P+1,右孩子下标为2P+2 class BuildHeap: """构建一个小根堆二叉树 预先定义一个下标为0的元素,实际没有用途, ...
分类:
编程语言 时间:
2020-09-17 12:53:31
阅读次数:
30
这篇文章是关于PAT的一个总复习,整理以备复习参考。 🍔关于链表 链表题目中总是会出现地址的保存,如:地址,data,下一个地址 00100 6 4 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 68237 12309 2 ...
分类:
其他好文 时间:
2020-09-17 12:33:55
阅读次数:
23
二叉平衡树: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、T ...
分类:
其他好文 时间:
2020-09-17 12:00:19
阅读次数:
59
题目 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平 ...
分类:
编程语言 时间:
2020-09-16 12:21:04
阅读次数:
31
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r ...
分类:
其他好文 时间:
2020-09-16 12:19:36
阅读次数:
29
一、前言 二叉堆是一个特殊的堆,其本质是一棵完全二叉树,可用数组来存储数据,如果根节点在数组的下标位置为1,那么当前节点n的左子节点为2n,有子节点在数组中的下标位置为2n+1。二叉堆类型分为最大堆(大顶堆)和最小堆(小顶堆),其分类是根据父节点和子节点的大小来决定的,在二叉堆中父节点总是大于或等于 ...
分类:
编程语言 时间:
2020-09-16 12:12:33
阅读次数:
31
//前序遍历 /** * 根-左-右,所以入栈的时候要相反,有右节点则加入右节点,有左节点则加入左节点,每车循环的时候,弹一个 */ public ArrayList<Integer> preorderTraversal(TreeNode root) { ArrayList<Integer> lis ...
分类:
编程语言 时间:
2020-09-11 14:23:16
阅读次数:
41