GO语言计算二叉树深度、二叉树节点个数(递归)

203 阅读1分钟
//Student is test struct
type Student struct {
	name  string
	lnode *Student
	rnode *Student
}

func deapth(node *Student) (deap int) {
	if node == nil {
		return 0
	} else {
		m := deapth(node.lnode)
		n := deapth(node.rnode)
		if m >= n {
			return m + 1
		} else {
			return n + 1
		}
	}
}
}

计算二叉树的节点个数,如果指针指向空,返回0,如果指向下一个节点,则返回左节点的个数和右节点的个数再加本身。

func nodenum(node *Student) int {
	if node == nil {
		return 0
	} else {
		return nodenum(node.lnode) + nodenum(node.rnode) + 1
	}
}