zoukankan      html  css  js  c++  java
  • 101. 对称二叉树


    递归解法

    class Solution {
        public boolean isSymmetric(TreeNode root) {
            if(root==null)return true;
    		return dfs(root.left,root.right);
    	}
    	public boolean dfs(TreeNode l, TreeNode r) {
    		if(l==null||r==null) return l==null&&r==null;
    		if(l.val!=r.val)return false;
    		return dfs(l.left,r.right)&&dfs(l.right,r.left);
    	}
    }
    

    递推解法

    class Solution {
        public boolean isSymmetric(TreeNode root) {
        	if(root==null)return true;
        	Stack <TreeNode> stack1 = new Stack <TreeNode>();
        	Stack <TreeNode> stack2 = new Stack <TreeNode>();
        	TreeNode temp1 = root.left;
        	TreeNode temp2 = root.right;
        	while(temp1!=null||temp2!=null||!stack1.isEmpty()||!stack2.isEmpty()) {
        		while(temp1!=null&&temp2!=null) {
        			stack1.push(temp1);
        			temp1 = temp1.left;
        			stack2.push(temp2);
        			temp2 = temp2.right;
        		}
        		if(temp1!=null||temp2!=null)return false;
        		temp1 = stack1.pop();
        		temp2 = stack2.pop();
        		if(temp1.val!=temp2.val)
        			return false;
        		temp1 = temp1.right;
        		temp2 = temp2.left;
        	}
        	return true;
        }
    }
    
  • 相关阅读:
    LINUX云计算40个相关问题
    sql
    补肾
    少吃食品
    抗癌食品
    爱情感言
    分布式事务的处理
    前端
    JAVA->Enum
    Sleuth+Zipkin+Log
  • 原文地址:https://www.cnblogs.com/cznczai/p/11348453.html
Copyright © 2011-2022 走看看