获取中序二叉树后继节点

type Node2 struct {
    val    int
    left   *Node2
    right  *Node2
    parent *Node2
}

func getLeftMode(node *Node2) *Node2 {
    if node == nil {
        return nil
    }
    for node.left != nil {
        node = node.left
    }
    return node
}
func getSuccessorNode(node *Node2) *Node2 {
    if node == nil {
        return nil
    }
    if node.right != nil {
        return getLeftMode(node.right)
    } else {
        parent := node.parent
        for parent != nil && parent.left != node {
            node = parent
            parent = node.parent
        }
        return parent
    }
}

你可能感兴趣的:(获取中序二叉树后继节点)