미들 - 제목 17:116.Populating Next Right Pointers in Each Node

3309 단어
제목 원문: Given a binary tree
struct TreeLinkNode {
  TreeLinkNode *left;
  TreeLinkNode *right;
  TreeLinkNode *next;
}

Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL. For example, Given the following perfect binary tree,
         1
       /  \       2    3
     / \  / \     4  5  6  7

After calling your function, the tree should look like:
         1 -> NULL
       /  \
      2 -> 3 -> NULL
     / \  / \
    4->5->6->7 -> NULL

제목 대의: 두 갈래 나무에 Next 바늘을 붙여서 오른쪽 인접 노드를 가리킨다.제목 분석: 모든 노드에 대해 왼쪽 아이의 넥스트는 오른쪽 아이, 오른쪽 아이의 넥스트는 왼쪽 아이이다.다시 돌아가서 왼쪽 나무와 오른쪽 나무에 이 함수를 호출하고 경계 상황(잎 노드, 빈 노드 등)을 주의하면 된다.원본: (language:java)
public class Solution {
    public void connect(TreeLinkNode root) {
        if(root==null)
            return;
        else if(root.left == null && root.right == null && root.next == null) { // root is a leaf node
            root.next=null;
            return;
        } 
        else {
            if(root.left != null)
                root.left.next = root.right;
            if(root.right != null && root.next != null)
                root.right.next = root.next.left;
            if(root.right != null && root.next == null)
                root.right.next = null;         
            connect(root.left);
            connect(root.right);
        }
    }
}

성적: 0ms, beats 81.60%, 중수 1ms, 52.14%

좋은 웹페이지 즐겨찾기