思路:
(1)通过先序遍历的方式求解
(2)叶子节点的特点: 左右孩子都为空
可以用非递归的方式
也可以用递归方式
package com.zhaochao.tree;
import java.util.Stack;
/**
* Created by zhaochao on 17/1/23.
* 叶子结点的特点: 左右孩子都为空
* 通过先序的方式找到叶子结点
*
*/
public class LeafNumber {
int flag = 0;
public int getCountsOfLeaves(TreeNode root) {
int count = 0;
if(root == null) {
return count;
}
Stack<TreeNode> stack = new Stack<TreeNode>();
stack.push(root);
while(!stack.isEmpty()) {
TreeNode node = stack.pop();
if(node.left == null && node.right == null) {
count++;
}
if(node.right != null) {
stack.push(node.right);
}
if(node.left != null) {
stack.push(no