題目描述:給你一個二叉樹的根節點 , 檢查它是否軸對稱。root
獲得更多?算法思路:代碼文檔,算法解析的私得。
運行效果
完整代碼
/*** 2 * @Author: LJJ* 3 * @Date: 2023/8/17 8:47* 4*/
public class SymmetricTree {static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(int val){this.val = val;}}public boolean isSymmetric(TreeNode root){if (root == null){return true;}return isMirror(root.left,root.right);}private boolean isMirror(TreeNode left, TreeNode right){if (left == null && right == null){return true;}if (left == null || right == null){return false;}return (left.val == right.val) && isMirror(left.left,right.right) && isMirror(left.right,right.left);}public static void main(String[] args) {SymmetricTree symmetricTree = new SymmetricTree();// 構建一個對稱的二叉樹TreeNode root = new TreeNode(1);root.left = new TreeNode(2);root.right = new TreeNode(2);root.left.left = new TreeNode(3);root.left.right = new TreeNode(4);root.right.left = new TreeNode(4);root.right.right = new TreeNode(3);boolean isSymmetric = symmetricTree.isSymmetric(root);System.out.println("是否是軸對稱的: " + isSymmetric); // 輸出 true}
}