给定二叉树,我们如何使用双向链表有效地找到每个垂直水平的总和。 是的,我知道我们可以使用哈希表找到它...但是如何使用双向链表 请用代码和示例解释!! 提前致谢
答案 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:我完全没有回答这个问题(例如,举例)因为我认为很有可能这是一个家庭作业问题。