leedcode做题总结,题目Symmetric Tree 2012/09/23
来源:互联网 发布:龙门镖局不好看知乎 编辑:程序博客网 时间:2024/06/06 03:41
判断二叉树是否对称,用递归和非递归实现:
递归可以从节点朝两个方向同时访问比对
public static boolean isS(TreeNode r1,TreeNode r2){ if(r1==null&&r2==null) return true; if(r1!=null&&r2!=null){ return isS(r1.left,r2.right)&&isS(r1.right,r2.left)&&r1.val==r2.val; } else{ return false; } } public static boolean isSymmetric(TreeNode root) { if(root==null) return true; return isS(root.left,root.right); }
非递归思路也一样,从节点像两个方向同时访问比对,因为对用栈非递归历遍树的代码不是很熟悉,中间改了几次错误,代码比较乱。
public boolean isSymmetric(TreeNode root) { if(root==null) return true; Stack<TreeNode> s1 = new Stack<TreeNode>(); Stack<TreeNode> s2 = new Stack<TreeNode>(); //s1.push(root); //s2.push(root); TreeNode root2=root; while (!(root==null&&root2==null)){ s1.push(root); if(root2==null)return false; if(root2.val!=root.val)return false; s2.push(root2); root = root.left; root2 = root2.right; if(root==null&&!s1.isEmpty()){ while(!s1.isEmpty()&&root==null&&!s2.isEmpty()&&root2==null){ root=s1.pop().right; root2=s2.pop().left; } if(root2!=null&&root==null)return false; if(root!=null&&root2==null)return false; if(!s1.isEmpty()&&s2.isEmpty())return false; if(!s2.isEmpty()&&s1.isEmpty())return false; } } return true; }
0 0
- leedcode做题总结,题目Symmetric Tree 2012/09/23
- leedcode做题总结,题目Same Tree 2012/09/03
- leedcode做题总结,题目Maximum Depth of Binary Tree-------2012/09/29
- leedcode做题总结,题目Binary Tree Level Order TraversalI/II 2012/09/28
- leedcode做题总结,题目Minimum Depth of Binary Tree 2012/10/09
- leedcode做题总结,题目Binary Tree Zigzag Level Order Traversal 2012/09/28
- leedcode做题总结,题目Balanced Binary Tree 2012/10/08
- leedcode做题总结,题目Flatten Binary Tree to Linked List 2012/10/14
- leedcode做题总结,题目Gas Station-------- 2013/09/28
- leedcode做题总结,题目Rotate Image 2012/03/17
- leedcode做题总结,题目Remove Element 2012/02/16
- leedcode做题总结, 题目Surrounded Regions130
- leedcode做题总结, 题目Median 80
- leedcode做题总结,题目Binary Tree Preorder Traversal 2013/11/05
- leedcode做题总结,题目Binary Tree Postorder Traversal-------- 2013/11/07
- leedcode做题总结,题目Convert Sorted Array to Binary Search Tree 2013/02/18
- leedcode做题总结, 题目Construct Binary Tree from Preorder。。。105/106
- leedcode做题总结,题目Two Sum2011-03-13
- PHP主动发送与被动接收xml数据凰
- B广搜深搜
- 网页嵌入google地图
- 自己动手写RTP服务器——传输所有格式的视频
- 关于layout_weight(权重问题)小议
- leedcode做题总结,题目Symmetric Tree 2012/09/23
- poj1019
- 实参演绎的过程中编译失败的意外情况
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
- 广搜深搜二
- 嵌入式高效编程(一)——简洁
- 福建省队集训被虐记——DAY1
- 1022. D进制的A+B (20)
- java流机制总结笔记2——字符流