Same Tree

来源:互联网 发布:微信淘客软件 编辑:程序博客网 时间:2024/06/08 09:48

Recursive

/** * 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) {        if (p == null && q == null) {            return true;        }        if (p == null || q == null) {            return false;        }        return p.val == q.val               && isSameTree(p.left, q.left)               && isSameTree(p.right, q.right);    }}

Iterative

/** * 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) {        Queue<TreeNode> queue = new LinkedList<TreeNode>();        queue.offer(p);        queue.offer(q);        while (!queue.isEmpty()) {            TreeNode a = queue.poll();            TreeNode b = queue.poll();            if (a == null && b == null) {                continue;            }            if (a == null || b == null) {                return false;            }            if (a.val != b.val) {                return false;            }            queue.offer(a.left);            queue.offer(b.left);            queue.offer(a.right);            queue.offer(b.right);        }        return true;    }}



0 0
原创粉丝点击