博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉查找树转双向链表JAVA实现
阅读量:2350 次
发布时间:2019-05-10

本文共 912 字,大约阅读时间需要 3 分钟。

把二元查找树转变成排序的双向链表

题目:

输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。

10

/ \

6 14

/ \ / \

4 8 12 16

转换成双向链表

4=6=8=10=12=14=16。

/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    private TreeNode head=null;    private TreeNode tail=null;    public TreeNode Convert(TreeNode pRootOfTree) {        visit(pRootOfTree);        return head;    }    public void visit(TreeNode root) {          if (root == null) {              return;          }          visit(root.left);          createList(root);          visit(root.right);      }      public void createList(TreeNode cur){          cur.left=tail;//把当前的节点接到链表的尾部           if(tail!=null){//双向连接               tail.right=cur;           }else{               head=cur;           }           tail=cur;//更新尾结点为当前结点,或者说:尾结点后移       }  }

转载地址:http://fomvb.baihongyu.com/

你可能感兴趣的文章
GIT的一些操作
查看>>
ZooKeeper 四字命令
查看>>
Mysql InnoDB锁问题
查看>>
ZooKeeper编程 基础教程
查看>>
Java 集合框架
查看>>
kafka 操作
查看>>
Java 集合框架 算法
查看>>
Java 集合框架 Set实现
查看>>
Java 集合框架 List实现
查看>>
Java 集合框架 Map 实现
查看>>
kafka 简单入门
查看>>
maven常用命令汇总
查看>>
Redis 方案
查看>>
ZooKeeper 数据与存储配置
查看>>
ZooKeeper 安装部署
查看>>
ZooKeeper 配置
查看>>
11.组合模式--Composite
查看>>
12.轻量模式--Flyweight
查看>>
13.外观模式--Facade
查看>>
开源史上最成功的八个开源软件
查看>>