Leetcode Populating Next Right Pointers in Each Node II

1439 단어 LeetCode

제목:


Follow up for problem "Populating Next Right Pointers in Each Node".
What if the given tree could be any binary tree? Would your previous solution still work?
Note:
  • You may only use constant extra space.

  • For example, Given the following binary tree,
             1
           /  \
          2    3
         / \    \
        4   5    7
    

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

    분석:


    첫 번째 문제 방법과 같다.

    Java 코드 구현:

    /**
     * Definition for binary tree with next pointer.
     * public class TreeLinkNode {
     *     int val;
     *     TreeLinkNode left, right, next;
     *     TreeLinkNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public void connect(TreeLinkNode root) {
            if(root==null)
                return;
                
            root.next = null;
            Queue q = new LinkedList();
            if(root.left!=null)
                q.offer(root.left);        
            if(root.right!=null)
                q.offer(root.right);
            
            while(!q.isEmpty())
            {
                int size = q.size();
                for(int i=0;i

    좋은 웹페이지 즐겨찾기