user-0 提问: 到底AVL（平衡二叉树）要满足什么条件？

回复:
user: user-1
content: 引用 4 楼 u011760757 的回复:[quote=引用 2 楼 user-3 的回复:] 没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。 难道说没有的为-1[/quote]当然不是，楼主想错了！

user: user-1
content: 引用 13 楼 u011760757 的回复:[quote=引用 12 楼 lelieven 的回复:] [quote=引用 11 楼 u011760757 的回复:] [quote=引用 10 楼 lelieven 的回复:] [quote=引用 楼主 u011760757 的回复:] 书上说是 左子树和右子树高度差最多为1 不过我感觉还是对 AVL树的定义有些模糊 为了验证自己是否搞懂了，下面说下我的判断方式，大家看下对不对.     8    / \   1   9  / \ 0   2 此树的左结点高度为1 右结点高度为0 所以是AVL树     7    / \   2   8  / \ 1   4    /    3   此树左结点高度为2 右结点高度为0 所以不是AVL树    5  / \ 3   6 为什么当左右结点高度一样时 书上说实际超出了AVL性质的要求？书上说高度差 最多为1 这也就是说如果不越过1就行了啊其实二楼已经说的很明白了：平衡的意思应是递归定义，[/quote] 就这最简单的例子    5  /    3     以为5的结点来说,左节点3高度为0  那右结点不存在的话 高度为几呢？   直说这个 ，我就能解惑了！！！[/quote]  为0[/quote] 谢谢 ， 立马结账哈！！！[/quote]不客气！

user: user-0
content: 引用 12 楼 lelieven 的回复:[quote=引用 11 楼 u011760757 的回复:] [quote=引用 10 楼 lelieven 的回复:] [quote=引用 楼主 u011760757 的回复:] 书上说是 左子树和右子树高度差最多为1 不过我感觉还是对 AVL树的定义有些模糊 为了验证自己是否搞懂了，下面说下我的判断方式，大家看下对不对.     8    / \   1   9  / \ 0   2 此树的左结点高度为1 右结点高度为0 所以是AVL树     7    / \   2   8  / \ 1   4    /    3   此树左结点高度为2 右结点高度为0 所以不是AVL树    5  / \ 3   6 为什么当左右结点高度一样时 书上说实际超出了AVL性质的要求？书上说高度差 最多为1 这也就是说如果不越过1就行了啊其实二楼已经说的很明白了：平衡的意思应是递归定义，[/quote] 就这最简单的例子    5  /    3     以为5的结点来说,左节点3高度为0  那右结点不存在的话 高度为几呢？   直说这个 ，我就能解惑了！！！[/quote]  为0[/quote] 谢谢 ， 立马结账哈！！！

user: user-1
content: 引用 11 楼 u011760757 的回复:[quote=引用 10 楼 lelieven 的回复:] [quote=引用 楼主 u011760757 的回复:] 书上说是 左子树和右子树高度差最多为1 不过我感觉还是对 AVL树的定义有些模糊 为了验证自己是否搞懂了，下面说下我的判断方式，大家看下对不对.     8    / \   1   9  / \ 0   2 此树的左结点高度为1 右结点高度为0 所以是AVL树     7    / \   2   8  / \ 1   4    /    3   此树左结点高度为2 右结点高度为0 所以不是AVL树    5  / \ 3   6 为什么当左右结点高度一样时 书上说实际超出了AVL性质的要求？书上说高度差 最多为1 这也就是说如果不越过1就行了啊其实二楼已经说的很明白了：平衡的意思应是递归定义，[/quote] 就这最简单的例子    5  /    3     以为5的结点来说,左节点3高度为0  那右结点不存在的话 高度为几呢？   直说这个 ，我就能解惑了！！！[/quote]  为0

user: user-0
content: 引用 10 楼 lelieven 的回复:[quote=引用 楼主 u011760757 的回复:] 书上说是 左子树和右子树高度差最多为1 不过我感觉还是对 AVL树的定义有些模糊 为了验证自己是否搞懂了，下面说下我的判断方式，大家看下对不对.     8    / \   1   9  / \ 0   2 此树的左结点高度为1 右结点高度为0 所以是AVL树     7    / \   2   8  / \ 1   4    /    3   此树左结点高度为2 右结点高度为0 所以不是AVL树    5  / \ 3   6 为什么当左右结点高度一样时 书上说实际超出了AVL性质的要求？书上说高度差 最多为1 这也就是说如果不越过1就行了啊其实二楼已经说的很明白了：平衡的意思应是递归定义，[/quote] 就这最简单的例子    5  /    3     以为5的结点来说,左节点3高度为0  那右结点不存在的话 高度为几呢？   直说这个 ，我就能解惑了！！！

user: user-1
content: 引用 楼主 u011760757 的回复:书上说是 左子树和右子树高度差最多为1 不过我感觉还是对 AVL树的定义有些模糊 为了验证自己是否搞懂了，下面说下我的判断方式，大家看下对不对.     8    / \   1   9  / \ 0   2 此树的左结点高度为1 右结点高度为0 所以是AVL树     7    / \   2   8  / \ 1   4    /    3   此树左结点高度为2 右结点高度为0 所以不是AVL树    5  / \ 3   6 为什么当左右结点高度一样时 书上说实际超出了AVL性质的要求？书上说高度差 最多为1 这也就是说如果不越过1就行了啊其实二楼已经说的很明白了：平衡的意思应是递归定义，

user: user-1
content: 引用 6 楼 u011760757 的回复:[quote=引用 5 楼 lelieven 的回复:] [quote=引用 4 楼 u011760757 的回复:] [quote=引用 2 楼 user-3 的回复:] 没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。 难道说没有的为-1[/quote]当然不是，楼主想错了！[/quote] 别只说个当然不是撒   那这样的情况呢 为什么书上说是一颗坏的树     15    /  \   14  16  /     \ 13     17 /       \ 12      18 例如14的 左子树节点也就是13高度为1 右结点为0 这样依次类推 也符合啊，为什么书上说他是坏的树？ 帮我解释下撒.[/quote]因为15那个节点不符合啊！每个节点都要检查的！

user: user-2
content: The height of a node is the length of the longest downward path to a leaf from that node. The height of the root is the height of the tree. The depth of a node is the length of the path to its root (i.e., its root path). This is commonly needed in the manipulation of the various self-balancing trees, AVL Trees in particular. The root node has depth zero, leaf nodes have height zero, and a tree with only a single node (hence both a root and leaf) has depth and height zero. Conventionally, an empty tree (tree with no nodes, if such are allowed) has depth and height −1.  from http://en.wikipedia.org/wiki/Tree_(data_structure)

user: user-0
content: 引用 6 楼 u011760757 的回复:[quote=引用 5 楼 lelieven 的回复:] [quote=引用 4 楼 u011760757 的回复:] [quote=引用 2 楼 user-3 的回复:] 没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。 难道说没有的为-1[/quote]当然不是，楼主想错了！[/quote] 别只说个当然不是撒   那这样的情况呢 为什么书上说是一颗坏的树     15    /  \   14  16  /     \ 13     17 /       \ 12      18 例如14的 左子树节点也就是13高度为1 右结点为0 这样依次类推 也符合啊，为什么书上说他是坏的树？ 帮我解释下撒.[/quote]  就这最简单的例子    5  /    3     以为5的结点来说,左节点3高度为0  那右结点不存在的话 高度为几呢？

user: user-0
content: 引用 5 楼 lelieven 的回复:[quote=引用 4 楼 u011760757 的回复:] [quote=引用 2 楼 user-3 的回复:] 没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。 难道说没有的为-1[/quote]当然不是，楼主想错了！[/quote] 别只说个当然不是撒   那这样的情况呢 为什么书上说是一颗坏的树     15    /  \   14  16  /     \ 13     17 /       \ 12      18 例如14的 左子树节点也就是13高度为1 右结点为0 这样依次类推 也符合啊，为什么书上说他是坏的树？ 帮我解释下撒.

user: user-0
content: 引用 2 楼 user-3 的回复:没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。 难道说没有的为-1

user: user-0
content: 引用 2 楼 user-3 的回复:没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。  那这样的情况呢 为什么书上说是一颗坏的树     15    /  \   14  16  /     \ 13     17 /       \ 12      18 例如14的 左子树节点也就是13高度为1 右结点为0 这样依次类推 也符合啊，为什么书上说他是坏的树？

user: user-3
content: 没看明白你要问啥，但是平衡的意思应是递归定义，以你的     8    / \   1   9  / \ 0   2  应该分析每一个节点，节点0左右子树高度都为0，2的左右都为0，1的都为1，8的左2右1，9左0右0.  所有节点的左右子树高度差都不超过1，平衡了。

user: user-0
content: 自己顶一下....