LeeCode101对称二叉树(Java)(树的遍历)

题目链接:LeeCode101对称二叉树
题目描述:在这里插入图片描述
按着非递归的思想正常遍历一遍,一个向右一个向左,不同就返回false

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    public static boolean isSymmetric(TreeNode root) {
    
    
        Stack<TreeNode> nodes=new Stack<>();
        Stack<TreeNode> nodes1=new Stack<>();
        TreeNode node=root;
        TreeNode node1=root;
        while (!nodes.isEmpty() || node != null) {
    
    
            if(node!=null&&node1==null){
    
    
                return false;
            }
            if(node1!=null&&node==null){
    
    
                return false;
            }
            if (node != null && node1 != null&&node.val!=node1.val) {
    
    
                return false;
            }
            if(node!=null&&node1!=null){
    
    
                if (node.val != node1.val) {
    
    
                    return false;
                }
                nodes.push(node);
                nodes1.push(node1);
                node=node.left;
                node1=node1.right;
            }else{
    
    
                node=nodes.pop();
                node1=nodes1.pop();
                node=node.right;
                node1=node1.left;
            }
        }
        return true;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43590593/article/details/112968756