검지 offer----두 갈래 나무의 거울(두 갈래 나무 반전)

1137 단어
1. 제목 설명
주어진 두 갈래 트리를 조작하여 원본 두 갈래 트리의 거울로 변환합니다.
 :  
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	 
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5

2. 생각
트리의 모든 노드의 좌우 하위 노드를 교환하면 트리의 거울을 얻을 수 있습니다.
한 그루의 나무의 거울을 구하는 과정: 이전에 이 나무의 모든 노드를 두루 훑어보았는데 만약에 훑어본 노드가 하위 노드가 있다면 그 좌우 두 개의 하위 노드를 교환하고 모든 비엽 노드의 왼쪽, 오른쪽 노드를 교환한 후에 나무의 거울을 얻는다.
2. 코드는 다음과 같습니다.
/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public void Mirror(TreeNode root) {        if(root == null){            return;        }        if(root.left==null && root.right==null){            return;                    }        TreeNode temp = null;        temp = root.left;        root.left = root.right;        root.right = temp;        if(root.left != null){            Mirror(root.left);        }        if(root.right != null){            Mirror(root.right);        }            }}

좋은 웹페이지 즐겨찾기