自学内容网 自学内容网

52.填充每个节点的下一个右侧节点指针

class Solution {
    public Node connect(Node root) {
        if(root==null){
            return root;
        }
        Queue<Node> qu=new LinkedList<>();
        qu.offer(root);
        int le;
        Node nod1=root,nod2;
        while(!qu.isEmpty()){
            le=qu.size();
            if(le>1){
                nod1=qu.poll();
                if(nod1.left!=null){
                    qu.offer(nod1.left);
                }
                if(nod1.right!=null){
                    qu.offer(nod1.right);
                }
                le--;
            }
            while(le>0){
                nod2=qu.poll();
                nod1.next=nod2;
                nod1=nod2;
                if(nod1.left!=null){
                    qu.offer(nod1.left);
                }
                if(nod1.right!=null){
                    qu.offer(nod1.right);
                }
                if(le==1){
                    nod2.next=null;
                }
                le--;
            }
        }
        return root;
    }
}

 

class Solution(object):
    def connect(self, root):
        if root is None:
            return root
        qu=collections.deque()
        qu.append(root)
        nod1=root
        while qu:
            le=len(qu)
            if le>1:
                nod1=qu.popleft()
                if nod1.left:
                    qu.append(nod1.left)               
                if nod1.right:
                    qu.append(nod1.right)
                le-=1
            while le>0:
                nod2=qu.popleft()
                nod1.next=nod2
                nod1=nod2
                if nod1.left:
                    qu.append(nod1.left)
                if nod1.right:
                    qu.append(nod1.right)
                if le==1:
                    nod2.next=None
                le-=1
        return root


原文地址:https://blog.csdn.net/Runner__Binger/article/details/142715322

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!