求二叉树所有结点数据的和

递归

int addTree(BinaryTreeNode node){
    
    
  if(node == null)
    return 0;
  else
    return root.getData()+addTree(node.getLeft())
    +addTree(node.getRight());
}

非递归

int sumForTree(BinaryTreeNode root){
    
    
  BinaryTreeNode temp;
  LLQueue q = new LLQueue();
  int sum = 0;
  if(root == null){
    
    
    return 0
  }
  q.enQueue(root);
  while(!q.isEmpty()){
    
    
    temp = q.deQueue();
    sum += temp.getData();
    if(temp.getRight() != null)
      q.enQueue(temp.getLeft());
    if(temp.getLeft() != null)
      q.enQueue(temp.getRight());
  }
  q.deleteQueue();
  return sum;
}

猜你喜欢

转载自blog.csdn.net/weixin_37632716/article/details/114457348