成都网站建设设计

将想法与焦点和您一起共享

在python二叉树中如何为每个节点关联其右相邻节点

在python二叉树中如何为每个节点关联其右相邻节点,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联专注于东平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供东平营销型网站建设,东平网站制作、东平网页设计、东平网站官网定制、重庆小程序开发公司服务,打造东平网络公司原创品牌,更为您提供东平网站排名全网营销落地服务。

如果用C描述的话,就是一个二叉树节点定义包括右节点指针,左节点指针,和右相连指针;给出一个二叉树,维护其右相邻指针,如果是最右边节点,则指针为空。

struct Node {
  int val;
  Node *left;
  Node *right;
  Node *next;
}在python二叉树中如何为每个节点关联其右相邻节点

思路其实很简单,这个可以按层分析二叉树,首先把当前层节点按照从左到右放入一个队列中,遍历这个队列;如果不是队列最后一个节点,则按照当前节点的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://chengdu.cdxwcx.cn/article/jdoscj.html