在python二叉树中如何为每个节点关联其右相邻节点
在python二叉树中如何为每个节点关联其右相邻节点,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联专注于东平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供东平营销型网站建设,东平网站制作、东平网页设计、东平网站官网定制、重庆小程序开发公司服务,打造东平网络公司原创品牌,更为您提供东平网站排名全网营销落地服务。
如果用C描述的话,就是一个二叉树节点定义包括右节点指针,左节点指针,和右相连指针;给出一个二叉树,维护其右相邻指针,如果是最右边节点,则指针为空。
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
思路其实很简单,这个可以按层分析二叉树,首先把当前层节点按照从左到右放入一个队列中,遍历这个队列;如果不是队列最后一个节点,则按照当前节点的next就是下一个节点;同时把每一个节点的子节点按照从左到右放入下一层队列;然后 遍历下一层队列;直到这个队列为空,遍历完成。
代码如下:
""" # Definition for a Node. class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val self.left = left self.right = right self.next = next """ class Solution: def connect(self, root: 'Node') -> 'Node': if root == None: return None else: nodeList = [] nodeList.append(root) while nodeList != []: nextList = [] for i in range(len(nodeList)): if nodeList[i].left != None: nextList.append(nodeList[i].left) if nodeList[i].right != None: nextList.append(nodeList[i].right) if i!= len(nodeList)-1: nodeList[i].next = nodeList[i+1] nodeList = nextList return root
看完上述内容,你们掌握在python二叉树中如何为每个节点关联其右相邻节点的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
新闻名称:在python二叉树中如何为每个节点关联其右相邻节点
网页URL:http://scyanting.com/article/jdoscj.html