标签:sam public check this blog new tree val sametree
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Pair{ TreeNode x; TreeNode y; public Pair(TreeNode x, TreeNode y){ this.x = x; this.y = y; } } public class Solution { //recursive // public boolean isSameTree(TreeNode p, TreeNode q) { // if(p == null && q == null) // return true; // if(p == null || q== null || p.val != q.val) // return false; // return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); // } public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null) return true; if(p == null || q== null || p.val != q.val) return false; Queue<Pair> queue = new LinkedList<Pair>(); queue.offer(new Pair(p, q)); while(!queue.isEmpty()){ Pair values = queue.poll(); if(values.x == null && values.y == null) continue; if(values.x != null && values.y != null){ queue.offer(new Pair(values.x.left, values.y.left)); queue.offer(new Pair(values.x.right, values.y.right)); } if(values.x == null || values.y == null || values.x.val != values.y.val) return false; } return true; } }
标签:sam public check this blog new tree val sametree
原文地址:http://www.cnblogs.com/joannacode/p/5998959.html