一、题目叙述:
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Subscribe to see which companies asked this question.
二、解题思路:
Easy题。
思路:
(1)递的归的方法,检查当前结点的value值,然后递归检查左子树,递归检查右子树。
(2)注意考虑树空的几种情况。
三、源码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isSameTree(TreeNode p, TreeNode q)
{
boolean left = true;
boolean right = true;
if (p == null && q == null) return true;
else if ((p == null && q != null) || (p != null && q == null))return false;
else if (p != null && q != null)
{
if (p.val != q.val) return false;
left = isSameTree(p.left, q.left);
right = isSameTree(p.right, q.right);
}
return (left && right);
}
}