链接 题目. 难度: middle 解答: tree的定义就是递归的,所以关于树的算法也多采用递归。但是这个递归的话存在子问题重复计算的问题,所以用dp更好 package main import ( fmt ) type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func printTree(root *TreeNode) { toCheck := make([]*TreeNode, 1) toCheck[0] = root toCheckNext := make([]*TreeNode, 0