博客
关于我
剑指 Offer 36 二叉搜索树与双向链表
阅读量:324 次
发布时间:2019-03-03

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

package SwordOffer;/** * @Description: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例:  我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。  特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。* @Param:  * @return:  * @Author: lvhong* @Date:  * @E-mail lvhong282@163.com*/ public class lab36midium {    Node pre,head;    public Node treeToDoublyList(Node root) {        if(root==null){            return null;        }        dfs(root);        head.left=pre;        pre.right=head;        return head;    }    void dfs(Node cur){        if(cur==null){            return ;        }        dfs(cur.left);        if(head==null){            head=cur;        }        if(pre!=null){            pre.right=cur;        }        cur.left=pre;        pre=cur;        dfs(cur.right);    }}class Node {    public int val;    public Node left;    public Node right;    public Node() {}    public Node(int _val) {        val = _val;    }    public Node(int _val,Node _left,Node _right) {        val = _val;        left = _left;        right = _right;    }};

 

你可能感兴趣的文章
MYSQL和ORACLE的一些操作区别
查看>>
mysql和redis之间互相备份
查看>>
MySQL和SQL入门
查看>>
mysql在centos下用命令批量导入报错_Variable ‘character_set_client‘ can‘t be set to the value of ‘---linux工作笔记042
查看>>
Mysql在Linux运行时新增配置文件提示:World-wrirable config file ‘/etc/mysql/conf.d/my.cnf‘ is ignored 权限过高导致
查看>>
Mysql在Windows上离线安装与配置
查看>>
MySQL在渗透测试中的应用
查看>>
Mysql在离线安装时启动失败:mysql服务无法启动,服务没有报告任何错误
查看>>
Mysql在离线安装时提示:error: Found option without preceding group in config file
查看>>
MySQL基于SSL的主从复制
查看>>
Mysql基本操作
查看>>
mysql基本操作
查看>>
mysql基本知识点梳理和查询优化
查看>>
mysql基础
查看>>
Mysql基础 —— 数据基础操作
查看>>
mysql基础---mysql查询机制
查看>>
MySQL基础5
查看>>
MySQL基础day07_mysql集群实例-MySQL 5.6
查看>>
Mysql基础命令 —— 数据库、数据表操作
查看>>
Mysql基础命令 —— 系统操作命令
查看>>