Java面试--二叉树的遍历

二叉树的遍历一、前序遍历遍历顺序:先前序遍历树根,再前序遍历左子树,再前序遍历右子树先遍历树根(A)--再遍历左子树(B)--再遍历左子树(D)--(D没有左子树了)再遍历右子树(E)--再遍历左子树(G)--(A没有左子树了)再遍历右子树(C)--(C没有左子树了)再遍历右子树(F) ;故顺序为 A-B-D-E-G-C-F; 二、中序遍历遍历顺序:先中序遍历左子树...
摘要由CSDN通过智能技术生成

二叉树的遍历

一、前序遍历

遍历顺序:先前序遍历树根,再前序遍历左子树,再前序遍历右子树

先遍历树根(A)--再遍历左子树(B)--再遍历左子树(D)--(D没有左子树了)再遍历右子树(E)--再遍历左子树(G)--(A没有左子树了)再遍历右子树(C)--(C没有左子树了)再遍历右子树(F) ;故顺序为 A-B-D-E-G-C-F;

 

二、中序遍历

遍历顺序:先中序遍历左子树,再遍历树根,再中序遍历右子树

先遍历左子树(D)--再遍历其父元素(B)--再遍历右子树(E)--再遍历左子树(G)--再遍历树根(A)--(A没有左子树了)再遍历右子树(C)--(C没有左子树了)再遍历右子树(F) ;故顺序为 D-B-G-E-A-C-F;

 

三、后序遍历

遍历顺序:先后序遍历左子树,再后序遍历右子树,再遍历树根

先遍历左子树(D)--再遍历左子树(G)--再遍历其父元素(E)--再遍历其父元素(B)--再遍历右子树(F)--在遍历其父元素(C)--再遍历s树根(A) ;故顺序为 D-G-E-B-F-C-A;

代码实现:

定义树节点 TreeNode.java

package interview.tree;

public class TreeNode {
  private final char value;
  private TreeNode left;
  private TreeNode right;
  private TreeNode parent;

  public TreeNode(char value) { //定义树的节点
    this.value = value;
    this.left = null;
    this.right = null;
    this.parent = null;
  } 

  public char getValue() {
    return value;
  }

  public TreeNode getLeft() {
    return left;
  }

  public void setLeft(TreeNode left) {
    this.left = left;
    if (this.left != null) {
      this.left.setParent(this);
    }
  }

  public TreeNode getRight() {
    return right;
  }

  public void setRight(TreeNode right) {
    this.right = right;
    if (this.right != null) {
      this.right.setParent(this);
    }
  }

  public TreeNode getParent() {
    return parent;
  }

  private void setParent(TreeNode parent) {
    this.parent = parent;
  }
}

定义二叉树 TreeCreater.java

package interview.tree;

public class TreeCreator {	//使用Node创建树
  public TreeNode createSampleTree() {
    TreeNode root = new T
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值