创建二叉树:
方法一:先分别创建节点,再根据连接关系连接各节点
方法二:输入为vector<int>, 递归实现创建,通过int型数组(层序)创建二叉树,用-1表示空节点。
打印二叉树:
使用队列的先进先出特性,以层序方式输出打印二叉树
具体的代码实现写在了头文件中,如下:
// Created by zzh on 2020/4/26.
#ifndef SWORD_TO_OFFER_BINARYTREE_H
#define SWORD_TO_OFFER_BINARYTREE_H
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
explicit TreeNode(int x):val(x),left(nullptr),right(nullptr){}
};
///创建二叉树的三种方法/
//1.先创建节点,然后连接各节点
TreeNode* createTreeNode(int val){
auto res = new TreeNode(val);
return res;
}
void connectTreeNode(TreeNode* root,TreeNode* left, TreeNode* right){
root->left = left;
root->right = right;
}