题解 | #牛群的轴对称结构#
牛群的轴对称结构
https://www.nowcoder.com/practice/a200535760fb4da3a4568c03c1563689
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ public boolean isSymmetric (TreeNode root) { // write code here List<Integer> list = new ArrayList<>(); inOrder(root, list); return check(list); } private void inOrder(TreeNode root, List<Integer> list) { if (root == null) return; inOrder(root.left, list); list.add(root.val); inOrder(root.right, list); } private boolean check(List<Integer> list) { int size = list.size(); for (int i = 0; i < size / 2; i++) { if (list.get(i) != list.get(size - i - 1)) return false; } return true; } }
- 利用二叉树的中序遍历,将所有的节点存储到一个List集合中。
- 判断这list集合中的元素是否对称
- 遍历list集合,这里只需要遍历二分之一即可,头尾元素不等,则说明不是对称的;
- 循序退出后,说明是对称的,返回true。