(Traverse) Convert a given Binary Tree to Doubly Linked List
21 Oct 2020 | algorithm programming leetcode이진 트리를 중위순회를 사용하여 탐색하고 더블링크드리스트로 반환하는 문제이다.
메인함수에서 트리 노드를 모두 넣었다고 가정한다. 만들어진 리스트의 루트는 head.
class Node
{
int value;
Node left, right;
public Node(int value)
{
this.value = value;
left = right = null;
}
}
class Solution
{
Node root;
Node head;
Node prev = null;
void traverse(Node root)
{
if (root == null)
return;
traverse(root.left);
if (prev == null)
head = root;
else
{
root.left = prev;
prev.right = root;
}
prev = root;
BinaryTree2DoubleLinkedList(root.right);
}
}