• LeetCode【100. 相同的树】


    看到这道题,第一思考是结构和节点完全相同

    第一次,就没有思考null的情况

    if(p.val == q.val && p.left.val == q.left.val && p.right.val == q.right.val)
    {
        return true;
    }
    else
        return false;

    这个就导致以下错误,就是空指针的错误

    java.lang.NullPointerException
      at line 12, Solution.isSameTree
      at line 54, __DriverSolution__.__helper__
      at line 81, __Driver__.main

    然后修改的代码

            if(p == null && q == null)
            {
                return true;
            }
            else if(p != null && q != null)
            {
                if(p.val == q.val && p.left.val == q.left.val && p.right.val == q.right.val)
                {
                    return true;
                }
                return false;
            }
            else
                return false;

    然而,也出现了空指针的错误,仔细查看代码后,发现了问题所在,就是只考虑了p的null与q的null,不能保证p.left,q.left,p.right,q.right是否为空,

    那么,他们判断是否为null,依然和p,q是否为null是类似的,那么在这里就可以利用递归。

    采用isSameTree(p,q)这个函数,就可以采用isSameTree(p.left,q.left)和isSameTree(p.right,q.right),就可以避免null

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public boolean isSameTree(TreeNode p, TreeNode q) {
            if(p == null && q == null)
            {
                return true;
            }
            else if(p != null && q != null)
            {
                if(p.val == q.val && isSameTree(p.left,q.left) && isSameTree(p.right,q.right))
                {
                    return true;
                }
                return false;
            }
            else
                return false;
        }
    }
  • 相关阅读:
    高效代码审查的十个经验
    记事本
    cocos2d-x游戏引擎核心之十一——并发编程(消息通知中心)
    DE1-SOC开发板使用学习
    反思的话-180929
    反思的话-企业制度的作用180927
    XDS100V3连接Pandaboard ES OMAP4460开发板
    《手把手教你学DSP-基于TMS320F28335》书中的错误
    DSP28335做FFT傅里叶变换
    itop4412学习-上层应用多任务开发
  • 原文地址:https://www.cnblogs.com/wzwi/p/10715279.html
Copyright © 2020-2023  润新知