java -链表实现二叉树

java – 链表实现二叉树

1. 首先创建树
    TreeNode root;

    //设置根节点
    public void setRoot(TreeNode root) {
        this.root = root;
    }


    //获取根节点
    public TreeNode getRoot() {
        return root;
    }

    //前序遍历
    public void frontShow(){
        if(root!=null){
            root.frontShow();
        }
    }

    //中序遍历
    public void midShow(){
        if(root!=null){
            root.midShow();
        }
    }

    //后序遍历
    public void afterShow(){
        if(root!=null){
            root.afterShow();
        }
    }
    
    //前序查找
    public TreeNode frontSearch(int value){
        return root.frontSearch(value);
    }
    //中序查找
    public TreeNode midSearch(int value){
        return root.midSearch(value);
    }
    //后序查找
    public TreeNode afterSearch(int value){
        return root.afterSearch(value);
    }
    //删除子树
    public void delete(int value){
  
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中,我们可以使用链表实现二叉树。具体实现方法如下: 首先,我们需要定义一个二叉树的节点类: ```java class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; this.left = null; this.right = null; } } ``` 然后,我们定义一个链表节点类,该类包含一个指向二叉树节点的指针和一个指向下一个链表节点的指针: ```java class ListNode { TreeNode node; ListNode next; public ListNode(TreeNode node) { this.node = node; this.next = null; } } ``` 接下来,我们定义一个链表类,该类包含一个指向链表头节点的指针: ```java class LinkedList { ListNode head; public LinkedList() { this.head = null; } public void add(TreeNode node) { ListNode newNode = new ListNode(node); if (head == null) { head = newNode; } else { ListNode curr = head; while (curr.next != null) { curr = curr.next; } curr.next = newNode; } } public boolean isEmpty() { return head == null; } public TreeNode remove() { if (head == null) { return null; } else { TreeNode node = head.node; head = head.next; return node; } } } ``` 最后,我们使用链表实现二叉树的层次遍历: ```java public static void levelOrderTraversal(TreeNode root) { LinkedList queue = new LinkedList(); queue.add(root); while (!queue.isEmpty()) { TreeNode node = queue.remove(); System.out.print(node.val + " "); if (node.left != null) { queue.add(node.left); } if (node.right != null) { queue.add(node.right); } } } ``` 这样,我们就使用链表成功地实现二叉树的层次遍历。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值