`

Convert a Binary Tree to Doubly Linked List

 
阅读更多

Given a Binary Tree (Bt), convert it to a Doubly Linked List(DLL). The left and right pointers in nodes are to be used as previous and next pointers respectively in converted DLL. The order of nodes in DLL must be same as Inorder of the given Binary Tree. The first node of Inorder traversal (left most node in BT) must be head node of the DLL.

 

private TreeNode prev;
private TreeNode head;
public TreeNode bstToDLL(TreeNode node) {
	if(node == null) return null;
	bstToDLL(node.left);
	node.left = prev;
	if(prev != null) {
		prev.right = node;
	} else {
		head = node;
	}
	prev = node;
	bstToDLL(node.right);
	return head;
}

 

Reference:

http://www.algorithmsandme.com/2013/10/binary-search-tree-to-doubly-linked.html

 

分享到:
评论

相关推荐

    java-leetcode-114-flatten-binary-tree-to-linked-list

    java java_leetcode-114-flatten-binary-tree-to-linked-list

    C#资源库-binarytree

    标题"C#资源库-binarytree"指的是一个使用C#编程语言实现的二叉树数据结构的代码库。在软件开发中,二叉树是一种基础且重要的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这种...

    BinaryTree-BinaryTree

    BinaryTree-BinaryTree

    BinaryTree

    This is a binary tree search implementation.

    Construct Binary Tree from Preorder and Inorder Traversal

    Construct Binary Tree from Preorder and Inorder Traversal 根据先序,中序建立二叉树

    BinaryTree二叉树实现

    二叉树是一种重要的数据结构,它在计算机科学中扮演着至关重要的角色,特别是在算法和...在二叉树的`BinaryTree`文件中,可能会包含这些操作的具体实现,通过阅读和理解这些代码,可以深入学习和掌握二叉树的相关知识。

    BinaryTree-源码.rar

    【标题】:“BinaryTree-源码.rar”是一个与二叉树相关的源代码压缩包,它可能包含各种二叉树数据结构的实现,如二叉搜索树、平衡二叉树(AVL树或红黑树)或者自定义的二叉树结构。这个压缩包可能为学习数据结构与...

    binarytree.rar

    二叉树是一种在计算机科学中广泛使用的数据结构,它的每个节点最多有两个子节点,通常称为左子节点和右...解压“binarytree.rar”,查看其中的文件,理解数据结构,并根据给定的描述编写代码,以实现二叉树的前序遍历。

    java-二叉树binaryTree

    在IT领域,二叉树(Binary Tree)是一种基础的数据结构,尤其在计算机科学中有着广泛的应用。二叉树是每个节点最多有两个子节点的树结构,通常分为左子节点和右子节点。在这个"java-二叉树binaryTree"主题中,我们将...

    Python-BinaryTree用于学习二叉树的Python库

    "Python-BinaryTree"是一个专门用于学习和操作二叉树的Python库,它提供了方便的API来创建、遍历和操作二叉树。 1. **二叉树的概念与类型** - 二叉树的基本概念:二叉树的每个节点包含一个值、一个指向左子树的...

    BinaryTreeSort

    BinaryTreeSort的java实现,简单的二叉树排序

    二叉树官方源码BinaryTree_src

    在给定的“二叉树官方源码BinaryTree_src”中,我们可以找到一系列与二叉树相关的源代码文件,这为理解和实现二叉树提供了宝贵的参考资料。 首先,我们看到一个名为"BinaryTreeDemo.clw"的文件,这可能是项目的工作...

    陈越、何钦铭-数据结构作业11:Tree Traversals Again二叉树非递归遍历/栈遍历

    For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stack operations are: push(1); push(2); push(3); pop(); pop(); push(4); pop(); pop(); push(5...

    BinaryTree.cpp

    C++实现 操作函数包括先序、中序、后序遍历,求深度,深度、广度遍历 构建二叉树

    Search in a Binary Search Tree.zip

    在"Search in a Binary Search Tree"这个主题中,我们主要探讨如何在二叉搜索树中高效地进行查找操作。查找操作的目标是找到树中与给定值相匹配的节点。由于二叉搜索树的特性,我们可以采用分治策略来实现快速查找:...

    python-leetcode题解之114-Flatten-Binary-Tree-to-Linked-List

    知识点: 1. 题目概述:leetcode的第114题是关于将二叉树展平为链表的问题,要求将一个给定的二叉树按照前序遍历的顺序重构为链表形式。 2. 前序遍历:前序遍历是树的一种遍历方法,按照根节点、左子树、右子树的...

    js-leetcode题解之114-flatten-binary-tree-to-linked-list.js

    在前端开发中,算法和数据结构是基础知识,而LeetCode是一个旨在帮助开发者准备技术面试的平台。LeetCode上有许多题目可以帮助开发者训练和提升编程能力。114号题目要求将二叉树展开为链表,这是一个二叉树遍历的...

    Simple Binary Tree Class.zip_binary tree_tree

    在IT领域,二叉树(Binary Tree)是一种基础的数据结构,它由节点构成,每个节点最多有两个子节点,通常称为左子节点和右子节点。这个压缩包"Simple Binary Tree Class.zip"包含了实现简单二叉树类的相关文件,包括...

    BinaryTree.h

    有序二叉树创建 有序二叉树查找 二叉树遍历 有序二叉树删除 类模版实现的有序二叉树

    BinaryTree.java

    二叉树的实现代码,我的博客“Java——二叉树的基础实现”的代码。 https://blog.csdn.net/J_fla/article/details/103236673

Global site tag (gtag.js) - Google Analytics