关于二叉树的面试题

本文介绍了常见的二叉树面试题,包括二叉树的三种遍历方式(中序、先序、后序)、非递归遍历方法、判断对称二叉树的技巧以及二叉树节点翻转的解题思路。同时,提供了相关资源链接以帮助理解。
摘要由CSDN通过智能技术生成

我之前面试了好几家公司,都会考一些关于二叉树的面试题,比如下面这几个面试题:

1. 二叉树有哪几种遍历方式

2.不用递归如何遍历二叉树3.如何判断二叉树是对称二叉树4.将二叉树左右节点翻转5.实现一个函数接收任意二叉树,求二叉树所有根节点到叶子路径组成的数字之和

前端常考的算法题就是二叉树和排序了,这些好像很多公司都会有一两道这样的题目,大家面试前可以重点看一下这些知识点,这篇文章主要讲解二叉树。

基础知识

了解二叉树之前我们先要知道什么是二叉树和二叉树的组成。

二叉树是每个节点不超过两个。一棵最上面的节点称为根节点,如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子节点,一个节点可以有0个或多个子节点,没有任何子节点的节点称为叶子节点

下面代码就是创建二叉树的过程。

function Node(value, left, right) {
  this.value = value;
  this.left = left;
  this.right = right;
}


function BST() {
  this.root = null;
  this.insert = insert;
}


function insert(value) {
  let node = new Node(value, null, null)
  if (this.root == null) {
    // 根节点
    this.root = node;
  } else {
    // 子节点
    let current = this.root;
    let parent;
    while (true) {
      parent = current;
      if (value < current.value) {
        current = current.left;
        if (current == null) {
          parent.left = node;
          break;
        }
      } else {
        current = current.right;
        if(current == null) {
          parent.right = node;
          break;
        }
      }
    }
  }
}


let tree = new BST()


tree.insert(1)
tree.insert(2)
tree.insert(3)
tree.insert(4)
console.log(tree.root)

insert 方法是向二叉树中出入一个节点,我们需要判断节点的位置,分别对比左右节点的大小关系,然后选择性的输入到其中。

实战题目

文章的开头有5道面试题,下面开始做题啦!

问:二叉树有哪几种遍历方式?

答:有三种遍历方式,中序,先序,后序。中序遍历按照节点上的键值,以

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值