本文共 1922 字,大约阅读时间需要 6 分钟。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public boolean isSymmetric(TreeNode root) { return help(root, root); } //q,p是该节点的左右 子节点 public boolean help(TreeNode p, TreeNode q) { if(p == null && q == null) { return true; } if(p == null || q == null) { return false; } return p.val == q.val && help(p.left, q.right) && help(p.right, q.left); }}
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public boolean isSymmetric(TreeNode root) { return help(root, root); } public boolean help(TreeNode p, TreeNode q) { Queuequeue = new LinkedList<>(); queue.offer(p); queue.offer(q); while(!queue.isEmpty()) { TreeNode u = queue.poll(); TreeNode v = queue.poll(); if(u == null && v == null) { continue;//这里不能直接返回 还需要接着判断队列的其他元素 } if(u == null || v == null) { return false; } if(p.val != q.val) { return false; } queue.offer(u.left); queue.offer(v.right); queue.offer(u.right); queue.offer(v.left); } return true; }}
转载地址:http://imhzi.baihongyu.com/