题目
思路:
前序遍历:中左右,
我如果对称前序遍历:中右左
如果打印的一样,就说明是对称的,要打印空节点。
递推工作:
判断两节点 L.leftL.left 和 R.rightR.right 是否对称,即 recur(L.left, R.right) ;
判断两节点 L.rightL.right 和 R.leftR.left 是否对称,即 recur(L.right, R.left) ;
class Solution {
public boolean isSymmetric(TreeNode root) {
return root == null ? true : recur(root.left, root.right);
}
public boolean recur(TreeNode L, TreeNode R) {
if(L == null && R == null) return true;
if(L == null || R == null || L.val != R.val) return false;
return recur(L.left, R.right) && recur(L.right, R.left);
}
}
还是递归:
一直从上到下递到底层,直到判断条件有返回值,在开始从下到上归,不断向上返回判断值。
作者:jyd
链接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/solution/mian-shi-ti-28-dui-cheng-de-er-cha-shu-di-gui-qing/
来源:力扣(LeetCode)