1. 程式人生 > >【leetcode】94.(Medium)Binary Tree Inorder Traversal

【leetcode】94.(Medium)Binary Tree Inorder Traversal

解題思路:
morris遍歷


提交程式碼:回溯

class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> ans=new ArrayList<Integer>();
        
        TreeNode cur=root,tmp;
        while(cur!=null) {
        	if(cur.left!=null) {
        		tmp=cur.left;
while(tmp.right!=null&&tmp.right!=cur) tmp=tmp.right; if(tmp.right==null) { tmp.right=cur; cur=cur.left; } else { tmp.right=null; ans.add(cur.val); cur=cur.right; } }
else { ans.add(cur.val); cur=cur.right; } } return ans; } }

執行結果:
在這裡插入圖片描述