判断一棵二叉树是否为最大堆
Determine whether a binary tree is max heap
我正在编写一个函数来确定给定的二叉树是否是最大堆。如果二叉树只有一个节点(根),它会被认为是有效的最大堆吗?
要被视为有效的最大堆,二叉树必须满足两个属性:
- 形状属性。树必须是 complete binary tree。也就是说,除最后一层外,每一层都必须是满的。如果最后一个不满,则左补。
- 堆属性。每个子节点必须小于或等于其父节点。
只有一个节点的树同时满足这两个属性,因此它是一个有效的最大堆。
我正在编写一个函数来确定给定的二叉树是否是最大堆。如果二叉树只有一个节点(根),它会被认为是有效的最大堆吗?
要被视为有效的最大堆,二叉树必须满足两个属性:
- 形状属性。树必须是 complete binary tree。也就是说,除最后一层外,每一层都必须是满的。如果最后一个不满,则左补。
- 堆属性。每个子节点必须小于或等于其父节点。
只有一个节点的树同时满足这两个属性,因此它是一个有效的最大堆。