题目解析
本题应该只是需要模拟出三叉树结构,以及根据指定的逻辑进行插入新节点。
三叉树节点的数据结构定义如下:
{
val, // 节点值
height,// 节点所在高度,
left,// 左子树根节点,
right,// 右子树根节点,
mid,// 中子树根节点
}
三叉树的数据结构定义如下:
{
root,// 根节点
height,// 树的高度
}
三叉树插入新节点node逻辑:
- 如果三叉树为空,则三叉树根节点root = 新节点node
- 如果三叉树不为空,则从三叉树根节点作为比较节点cur开始比较:
- 如果 node.val < cur.val - 500,则node应该插入到cur节点的左子树中,
若 cur 节点不存在左子树,那么 node 就作为 cur 节点的左子树根节点,且node.height = cur.height + 1
若 cur 节点存在左子树,那么 cur = cur.left,继续和 node 比较 - 如果 node.val > cur.val + 500,则node应该插入到cur节点