美文网首页
2020-06-18 深度优先遍历 100. Same Tree

2020-06-18 深度优先遍历 100. Same Tree

作者: 苦庭 | 来源:发表于2020-06-19 05:43 被阅读0次

    https://leetcode.com/problems/same-tree/

    My answer / AC

    /**
     * Definition for a binary tree node.
     * function TreeNode(val, left, right) {
     *     this.val = (val===undefined ? 0 : val)
     *     this.left = (left===undefined ? null : left)
     *     this.right = (right===undefined ? null : right)
     * }
     */
    /**
     * @param {TreeNode} p
     * @param {TreeNode} q
     * @return {boolean}
     */
    var isSameTree = function(p, q) {
        let larr = [];
        let rarr = [];
        let dfs = function(node, arr) {
            if(!node) {
                arr.push(null);
                return;
            }
            arr.push(node.val);
            dfs(node.left, arr);
            dfs(node.right, arr);
        }
        dfs(p, larr);
        dfs(q, rarr);
        return larr.toString() === rarr.toString();
    };
    

    Recap

    • 较为简单的深度遍历,重点在于对于递归的把握以及特殊情况if(!node)的处理
    • 一般思路:
      1. 先在外面定义好要处理的数组
      2. 在函数内部定义inline递归函数
      3. 考虑特殊情况(一般是在末端)
      4. 按照深度遍历来递归调用

    相关文章

      网友评论

          本文标题:2020-06-18 深度优先遍历 100. Same Tree

          本文链接:https://www.haomeiwen.com/subject/qsmmxktx.html