LeetCode(101) Symmetric Tree解题报告
来源:互联网 发布:lol盲僧怎么玩 知乎 编辑:程序博客网 时间:2024/05/16 09:20
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
递归解法:
public class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) return true; return isSym(root.left,root.right); } public boolean isSym(TreeNode left,TreeNode right){ if(left == null && right == null) return true; if(left == null || right == null) return false; return left.val == right.val && isSym(left.left,right.right) && isSym(left.right,right.left); }}
迭代解法:
public boolean isSymmetric(TreeNode root) { if(root == null) return true; Stack<TreeNode> leftStack = new Stack<TreeNode>(); Stack<TreeNode> rightStack = new Stack<TreeNode>(); leftStack.push(root.left); rightStack.push(root.right); while(leftStack.size() > 0 && rightStack.size() > 0){ TreeNode left = leftStack.pop(); TreeNode right = rightStack.pop(); if(left == null && right == null) continue; if(left == null || right == null) return false; if(left.val == right.val){ leftStack.push(left.right); leftStack.push(left.left); rightStack.push(right.left); rightStack.push(right.right); } else return false; } return true; }
Note
递归的效率(1ms)要比迭代高,而迭代的话,左子树遍历先序,右子树遍历后序的效率(4ms)又要略低于左子树遍历后序,右子树遍历先序的效率(3ms),不知道迭代的这个变化这个是不是跟后台数据有关。
0 0
- LeetCode(101) Symmetric Tree解题报告
- [LeetCode] Symmetric Tree 解题报告
- 【LeetCode】Symmetric Tree 解题报告
- [leetcode] 101. Symmetric Tree 解题报告
- 【LeetCode】101. Symmetric Tree 解题报告
- LeetCode解题报告 101. Symmetric Tree [easy]
- [Leetcode] 101. Symmetric Tree 解题报告
- [leetcode]101. Symmetric Tree@Java解题报告
- Leetcode 101. Symmetric Tree 验证树的对称性 解题报告
- leetcode解题之101# Symmetric Tree Java版(对称树)
- LeetCode(101)Symmetric Tree
- LeetCode 101 Symmetric Tree
- LeetCode: Symmetric Tree [101]
- [leetcode 101] Symmetric Tree
- [LeetCode 101]Symmetric Tree
- leetcode-101 Symmetric Tree
- leetcode || 101、Symmetric Tree
- Leetcode[101]-Symmetric Tree
- 表单
- 覆写
- Linux C 编程技巧--利用有限状态机模型编程
- linux应用编程笔记(15)消息队列编程
- CodeForces 603C Lieges of Legendre (SG函数)
- LeetCode(101) Symmetric Tree解题报告
- Beginning Python Chapter4
- 获取JAVA文件路径
- java从菜鸟到大神的成神之路学习路线_me
- 九度题目1525:子串逆序打印
- 编写和运行简单的Applet程序
- 微信 未读 置顶 删除 的简单实现
- unity3d调用win32打开对话框
- JAVA 常用包