Leetcode--94. 二叉树的中序遍历(迭代递归)
給定一個二叉樹,返回它的中序?遍歷。
示例:
輸入: [1,null,2,3]
? ?1
? ? \
? ? ?2
? ? /
? ?3
輸出: [1,3,2]
代碼:
迭代:
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
?//
?//????????1
?//?????2?????3
?//??4????5??6???7
?//
?//
class?Solution?{
????public?List<Integer>?inorderTraversal(TreeNode?root)?{
????????List<Integer>?result?=?new?LinkedList<>();
????????Stack<TreeNode>?stack?=?new?Stack<>();
????????if(root==null){
????????????return?result;
????????}
????????while(!stack.isEmpty()||root!=null){
????????????if(root!=null){
????????????????stack.push(root);
????????????????root=root.left;
????????????}else{
????????????????root?=?stack.pop();
????????????????result.add(root.val);
????????????????root?=?root.right;
????????????}
????????}
????????return?result;
????}
}
?
遞歸:
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
?//
?//????????1
?//?????2?????3
?//??4????5??6???7
?//
?//
class?Solution?{
????public?List<Integer>?inorderTraversal(TreeNode?root)?{
????????List<Integer>?list?=?new?ArrayList<Integer>();
????????if(root==null)
????????{
????????????return?list;
????????}
????????return?mid(root,list);
????}
????public?List<Integer>?mid(TreeNode?root,List<Integer>?list)
????{
????????if(root.left!=null)
????????{
????????????mid(root.left,list);
????????}
????????list.add(root.val);
????????if(root.right!=null)
????????{
????????????mid(root.right,list);
????????}
????????return?list;
????}
}
總結
以上是生活随笔為你收集整理的Leetcode--94. 二叉树的中序遍历(迭代递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分层结构,协议,接口,服务
- 下一篇: 7-4 银行排队问题之单队列多窗口加VI