美文网首页
26、二叉树与双向链表

26、二叉树与双向链表

作者: quiterr | 来源:发表于2017-09-02 21:44 被阅读0次

题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    
    public TreeNode Convert(TreeNode pRootOfTree) {
        if(pRootOfTree == null){
            return null;
        }
        //左子树转换
        TreeNode head1 = Convert(pRootOfTree.left);
        if(head1!=null){
            //找左子树最后一个节点
            TreeNode lst = findLastNode(head1);
            //链接左子树、根
            lst.right = pRootOfTree;
            pRootOfTree.left = lst;
        }
        
        //右子树转换
        TreeNode head2 = Convert(pRootOfTree.right);
        if(head2!=null){
            //链接右子树、根
            pRootOfTree.right = head2;
            head2.left = pRootOfTree;
        }
        
        if(head1!=null){
            return head1;
        }else{
            return pRootOfTree;
        }
    }
    
    public TreeNode findLastNode(TreeNode head){
        TreeNode lst = head;
        while(lst.right!=null){
            lst = lst.right;
        }
        return lst;
    }
}

相关文章

  • 数据结构和算法总结

    常用数据结构: 数组,栈,队列,链表(单向链表,双端链表,双向链表),哈希表(hash table),树(二叉树,...

  • python-025-把二叉树转换为双向链表

    题目:给定一个二叉树,将其转换为双向链表。 双向链表的特征是每一个节点都保存着其前驱节点和后继节点的地址,而二叉树...

  • Linux内核设计与实现——内核数据结构

    主要内容 链表 队列 映射 二叉树 1. 链表 单向链表、双向链表 环形链表 linux内核中的链表使用方法和一般...

  • 26、二叉树与双向链表

    题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针...

  • 剑指offer--algorithm--12

    题24--二叉树与双向链表的转换 该题所指的双向链表到底是怎么样的呢?下面用一张图来说明 解决该题的思路如下: 下...

  • 链表

    链表 缺点:查找复杂有点:定点删除/插入元素 单链表 双向链表 循环链表 双向循环链表 数组与链表的区别 数据存储...

  • 双向链表&双向循环链表

    链表分为:单链表、单向循环链表、双向链表、双向循环链表本节主要说明:双向链表、双向循环链表 定义结点 一、双向链表...

  • 线性表-双向链表与双向循环链表

    双向链表 双向链表示意图如下: 数据结构定义 创建双向链表 双向链表插入元素 双向链表删除元素 双向链表打印元素 ...

  • 线性表 — 链表存储

    链表存储 链表存储特点:不连续的,数据与数据的关系通过指针域连接。链表存储方式:单链表、循环链表、双向链表、双向循...

  • day03-双向链表

    双向链表: 单向链表只能单向查找,双向链表可以双向查找。 啥是双向链表? 双向链表可以双向查数据,所以就不存在单向...

网友评论

      本文标题:26、二叉树与双向链表

      本文链接:https://www.haomeiwen.com/subject/jtvqwttx.html