1. 程式人生 > >對稱的二叉樹(Java實現)

對稱的二叉樹(Java實現)

本題為劍指offer面試題59

[程式設計題]對稱的二叉樹
  • 熱度指數:31571  時間限制:1秒  空間限制:32768K
請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。 Java code:
package go.jacob.day609;

public class Demo2 {
	boolean isSymmetrical(TreeNode pRoot) {
		if (pRoot == null)
			return true;
		return isSymmetrical(pRoot.left, pRoot.right);
	}
	//比較左右子樹對應節點是否相同
	private boolean isSymmetrical(TreeNode pRoot1, TreeNode pRoot2) {
		if (pRoot1 == null && pRoot2 == null)
			return true;
		if (pRoot1 == null || pRoot2 == null)
			return false;
		if (pRoot1.val != pRoot2.val)
			return false;

		return isSymmetrical(pRoot1.left, pRoot2.right) && isSymmetrical(pRoot1.right, pRoot2.left);
	}

	class TreeNode {
		int val = 0;
		TreeNode left = null;
		TreeNode right = null;

		public TreeNode(int val) {
			this.val = val;

		}

	}
}