1. 主页
  2. 文档
  3. Level3题解(1-10)
  4. 第7课 递归1
  5. 数据的结构是按递归定义的

数据的结构是按递归定义的

(1). 二叉树深度

/**        
* Title: 递归求解二叉树的深度
* Description:
* @author rico
* @created 2017年5月8日 下午6:34:50
*/
public class BinaryTreeDepth {

/**
* @description 返回二叉数的深度
* @author rico
* @param t
* @return
*/
public static int getTreeDepth(Tree t) {

// 树为空
if (t == null) // 递归终止条件
return 0;

int left = getTreeDepth(t.left); // 递归求左子树深度,缩小问题的规模
int right = getTreeDepth(t.left); // 递归求右子树深度,缩小问题的规模

return left > right ? left + 1 : right + 1;
}
}


(2). 二叉树深度

    /**
* @description 前序遍历(递归)
* @author rico
* @created 2017年5月22日 下午3:06:11
* @param root
* @return
*/
public String preOrder(Node<E> root) {
StringBuilder sb = new StringBuilder(); // 存到递归调用栈
if (root == null) { // 递归终止条件
return ""; // ji
}else { // 递归终止条件
sb.append(root.data + " "); // 前序遍历当前结点
sb.append(preOrder(root.left)); // 前序遍历左子树
sb.append(preOrder(root.right)); // 前序遍历右子树
return sb.toString();
}
}