一、问题描述

  1.遍历二叉树指定层次的所有结点

  2.统计指定层的搜索结点个数

  3.对二叉树进行层次遍历

  4.找到二叉树中每一层的第一个结点或最后一个结点

二、问题分析

  对树结构的问题我们首先会想到使用递归来解决,因为树结构完美适合递归,树的前序、中序、后序遍历使用递归很容易就可以解决,并且很容易理解。对于树结构的层次遍历则会稍微麻烦一点(当然,也很简单),基于层次遍历的问题也有很多,现在我们就着重来分析前面提到的3个问题。

  什么是层次遍历 -- 即按照节点在每一层的顺序从上至下,由左到右进行遍历。

  所有的结果都是基于如下的树结构:

  【面试】基于二叉树层次遍历相关问题的求解

  树的数据结构的具体代码如下:

class Node {
    private String data;
    private Node lChild;
    private Node rChild;
        
    public Node(String data) {
        this.data = data;
    }
    public Node(String data, Node lChild, Node rChild) {
        this.data = data;
        this.lChild = lChild;
        this.rChild = rChild;
    }
        
    public Node getLChild() {
        return lChild;
    }
        
    public Node getRChild() {
        return rChild;
    }
        
    public void setRChild(Node rChild) {
        this.rChild = rChild;
    }
        
    public void setLChild(Node lChild) {
        this.lChild = lChild;
    }
        
    @Override
    public String toString() {
        return data;
    }    
}
View Code

相关文章:

  • 2021-04-22
猜你喜欢
  • 2021-10-11
  • 2021-10-11
  • 2021-09-29
  • 2021-07-26
  • 2021-05-26
相关资源
相似解决方案