如何使用双向链表找到二叉树的垂直和?

时间:2013-06-29 08:27:57

标签: list tree linked-list

给定二叉树,我们如何使用双向链表有效地找到每个垂直水平的总和。 是的,我知道我们可以使用哈希表找到它...但是如何使用双向链表 请用代码和示例解释!! 提前致谢

1 个答案:

答案 0 :(得分:1)

这引出了一个问题,“家庭作业?”

node { sum = 0; node *next=NULL; node *prev=NULL; } 

allocate node root_node

dfs(root,root_node){
    root_node.sum++
    if (leftchild) // check whether the child exists in tree
        if (!left_node) // check for left child in linked list
            allocate node left_node
        dfs(leftchild,left_node)
    if (rightchild) // check whether the child exists in tree
        if (!right_node) // check for right child in linked list
            allocate node right_node
        dfs(rightchild,right_node)
}

PS:我完全没有回答这个问题(例如,举例)因为我认为很有可能这是一个家庭作业问题。